16进制转10进制,2进制
输入一个16进制转换为10进制,2进制输出。
程序代码:
root@~ #cat zh.c
#include <stdio.h>
int main (void) {
int n,i=0,a[16];
scanf("%x",&n);
printf("Hex %x 's decimal is %i\n",n,n); //十六进制转十进制用printf()格式化输出就可以了
//辗转相除取模
do {
a[i]=n%2;
n/=2;
i++;
}while(n!=0);
//逆序打印数组,输出二进制
printf("Hex %x 's binary is ");
for(i--;i>=0;i--)
printf("%i",a[i]);
printf("\n");
return 0;
}
root@~ #./zh
10
Hex 10 's decimal is 16
Hex 10 's binary is 10000
root@~ #./zh
1a
Hex 1a 's decimal is 26
Hex 1a 's binary is 11010
root@~ #./zh
ffff
Hex ffff 's decimal is 65535
Hex ffff 's binary is 1111111111111111
root@~ #









