第一種:用來糊弄老師的,輸入一個數采用16進制格式輸出
#include
intmain()
{
intnum=0;
scanf("%d",&num);
printf("%x",num);
return0;
}
第二種:
#include
#include
charoNumTable[6]={'A','B','C','D','E','F'};
voiddToO(int,char*);
intmain()
{
intdNum;
charoNum[100]={0};
//輸入一個十進制數
scanf("%d",&dNum);
//調用轉換函數,將十進制轉換成以字符串表示的十六進制
dToO(dNum,oNum);
//輸出以字符串表示的16進制數據
printf("%s\n",oNum);
return0;
}
voiddToO(intdNum,char*oNum)
{
chartemp[100]={0};
for(inti=0;(dNum)&&(i
temp[i]=(dNum%16);
if(temp[i]>9){
temp[i]=oNumTable[temp[i]-10];
}
else{
temp[i]+='0';
}
dNum/=16;
}
char*p=temp;
while(*(p+1))p++;
for(inti=0;p!=temp-1;i++,p--){
oNum[i]=*p;
}
}
//下面是10進制轉換成任意進制數
#include"stdio.h"
main()
{
inti=0,m,n,r,a[40];
charstr[16]="0123456789ABCDEF";
printf("\n請輸入一個整數和要轉換成的進制數\n");
scanf("%d%d",&m,&r);/*r代表進制數*/
if(m<0)
{printf("%c",'-');
m=-m;}/*判斷是否輸入的是負數*/
do{
a[i++]=m%r;
m=m/r;}while(m>0);/*m對r取余數,再除以r*/
printf("轉換結果是:\n");
for(n=i-1;n>=0;n--)
printf("%c",str[a[n]]);
}
//夠簡單吧!