⑴ c語言中十六進制和八進制的格式
16進制以0x開頭,後面跟數字0~9或字母A~F(小寫也可以)。如:0x2D(16進制數2D)
8進制以0開頭,後面跟數字0~7。如:045(8進制數45)
如果使用printf函數輸出時,可以通過格式數明符來控制輸出格式。
舉例如下:
int x=23;
printf("%x", x); // 以16進制格式輸出,輸出17;
printf("%o", x); // 以8進制格式輸出,輸出2。
(1)c語言六進制輸出擴展閱讀:
C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括
UNIX操作系統在內)。由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身。於是,C語言就在這種情況下應運而生了。
⑵ C語言編程,輸入十進制數輸出十六進制和八進制
可以通過下面的公式解決
#include<stdio.h>
const int maxn = 128;
const int index8 = 8;
const int index16 =16;
int main()
{int Array8[maxn];
int Array16[maxn];
int n, cot8 = 0;
scanf("%d", &n);
int m = n, cot16 = 0;
while(n) {Array8[cot8++] = n % index8;
n /= index8;}
while(m) {Array16[cot16++] = m % index16;
m /= index16;}
int i;
for(i = cot8 - 1; i >= 0; i--)
printf("%d", Array8[i]);
puts("");
for(i = cot16 - 1; i >= 0; i--)
(2)c語言六進制輸出擴展閱讀:
十進制轉十六進制的具體方法:
對於整數部分,用被除數反復除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進制數轉換成十六進制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和余數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
⑶ C語言輸出16進制數
#include<stdio.h>
intmain()
{
intn;
scanf("%d",&n);
printf("0x%x ",n);
return0;
}
⑷ c語言怎麼樣實現6進制
把39轉換為6進制:
#include<stdio.h>
voiddec2n(intx,intn)
{if(x>=n)dec2n(x/n,n);
printf("%c",x%n>9?x%n+55:x%n+48);
}
intmain()
{intx,n;
scanf("%d%d",&x,&n);
dec2n(x,n);
return0;
}
⑸ c語言編程輸入一個整數,輸出它的十六進制、八進制、十進制、科學計數法
//C語言:
#include<stdio.h>
intmain(void)
{
inta;
scanf("%d",&a);
printf("8進制:%o 10進制:%d 16進制:%x 科學記數法:%e",a,a,a,a);
return0;
}
//C++:
#include<iostream>
usingnamespacestd;
intmain()
{
inta;
cin>>a;
cout<<endl;
cout<<"8進制:"<<oct<<a<<endl;
cout<<"10進制:"<<dec<<a<<endl;
cout<<"16進制:"<<hex<<a<<endl;
return0;
}
⑹ c語言輸入十進制(long),以二、八、十六進制輸出的程序
這個程序寫的真不錯,很簡明,標記一個。
他的演算法思想在於:先採用除「base」取余(所有的余數都會小於「base」),然後,再按這些余數的倒序輸出就完成了數據的10進制與其它進制的轉換。(如果你理解10轉二進制,以上話你就能明白)
char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; //這里是定義一個字元數組,用來輸出余數表示的值
int c[64],d,i=0,base;
long n;
printf("enter a number:\n"); scanf("%ld",&n);
printf("enter new base:\n"); scanf("%d",&base);
do
{
c[i]=n%base;
i++; n=n/base;
}while(n!=0);
printf("transmite new base:\n");
for(--i;i>=0;--i)
{
d=c[i]; //以該余數為下標,去數組中找其對應的值。如5對應的就是『5』 , 10就會對應A,當然只有超過10進制的base數,才會出現A以上的數值。
printf("%c",b[d]);
}
⑺ C語言寫程序任意輸入一個小寫字母,分別按 八進制,十進制,十六進制,字元格式輸出
#include "stdio.h"
void main()
{
char a;
printf("請輸入一個小寫字母:");
scanf("%c",&a);
printf("八進制輸出:%o\n十進制輸出:%d\n十六進制輸出:%x\n字元格式輸出:%c\n",a,a,a,a);
}
結果:
⑻ c語言編程:輸出十進制對應的八進制和十六進制值
#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
printf ("0%o 0X%X\r\n", n);
}