下列代碼可以將十進制轉換爲二進制、八進制和十六進制

#include "stdio.h"
int main()
{
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);
getchar();/*位於兩個輸入之間,用於接受回車字符*/
printf("Enter new base:\n"); 
scanf("%d",&base);/*進制轉換的進制類型*/
while(n!=0)/*商在小於或等於基數的的時候退出循環*/
{
c[i]=n%base;/*’%‘運算符使用很巧,可以讓數在一定的範圍內變化*/
i++;
n=n/base;/*進制轉換的機理:1、十進制轉化爲二、八、十六進制:除基(2、8、16)取餘,倒序寫出(注意:十進制轉化爲十六進制,十、十一、十二、十三、十四、十五依次輸出爲A、B、C、D、E、F);2、二進制轉化爲十進制:每位都用該位乘基的位數-1次方相加;二進制轉化爲八進制,可以使用十進制作爲中間橋樑;同理二進制轉換爲十六進制時,也可以使用十進制轉化爲十六進制。*/
}
printf("Transmite ner base:\n");/*十進制轉化爲二、八、十六進制都需要把除得的數逆序書寫*/
for(--i;i>=0;--i)
{
d=c[i]; printf("%c",b[d]);
}
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章