搜索
首页 电脑/网络 程序设计 C/C++

16进制转换成2进制

16进制转换成2进制

语音回答

答案字数较多,建议语音阅读

00:00 00:00

全部回答

2012-05-18

    /*思想:一般16进制化成2进制,每个16进制数化成2进制后先写成4个数字, 每4个4个并起来后再把前面的0去掉 (比如16进制数12A,先把1化成0001,2化成0010,A化成1010,合起来是000100101010,去掉前面的0后就是100101010,就是12A的2进制数)*/ #include #include void judge(char c) { if(c=='0') printf("%d%d%d%d",0,0,0,0); else if(c=='1') printf("%d%d%d%d",0,0,0,1); else if(c=='2') printf("%d%d%d",0,0,10); else if(c=='3') printf("%d%d%d",0,0,11); else if(c=='4') printf("%d%d",0,100); else if(c=='5') printf("%d%d",0,101); else if(c=='6') printf("%d%d",0,110); else if(c=='7') printf("%d%d",0,111); else if(c=='8') printf("%d",1000); else if(c=='9') printf("%d",1001); else if(c=='A') printf("%d",1010); else if(c=='B') printf("%d",1011); else if(c=='C') printf("%d",1100); else if(c=='D') printf("%d",1101); else if(c=='E') printf("%d",1110); else if(c=='F') printf("%d",1111); } void first(char c)/*第一个16进制数转化为2进制*/ { if(c=='1') printf("%d",1); else if(c=='2') printf("%d",10); else if(c=='3') printf("%d",11); else if(c=='4') printf("%d",100); else if(c=='5') printf("%d",101); else if(c=='6') printf("%d",110); else if(c=='7') printf("%d",111); else if(c=='8') printf("%d",1000); else if(c=='9') printf("%d",1001); else if(c=='A') printf("%d",1010); else if(c=='B') printf("%d",1011); else if(c=='C') printf("%d",1100); else if(c=='D') printf("%d",1101); else if(c=='E') printf("%d",1110); else if(c=='F') printf("%d",1111); } main() { int i,j,l; char x[81]; printf("输入16进制的数(用大写字母表示A、B、C、D、E、F),数字长度不超过一行\n"); while(scanf("%s",&x)!=EOF) { printf("输出转换成的2进制数\n"); i=0; l=strlen(x); if(x[i]=='0') i++; first(x[i]); for(j=i+1;j<l;j++) { judge(x[j]); if(j==l-1) printf("\n"); } printf("输入16进制的数\n"); } } 。
    。

2012-05-18

    /*思想:一般16进制化成2进制,每个16进制数化成2进制后先写成4个数字, 每4个4个并起来后再把前面的0去掉 (比如16进制数12A,先把1化成0001,2化成0010,A化成1010,合起来是000100101010,去掉前面的0后就是100101010,就是12A的2进制数)*/ #include #include void judge(char c) { if(c=='0') printf("%d%d%d%d",0,0,0,0); else if(c=='1') printf("%d%d%d%d",0,0,0,1); else if(c=='2') printf("%d%d%d",0,0,10); else if(c=='3') printf("%d%d%d",0,0,11); else if(c=='4') printf("%d%d",0,100); else if(c=='5') printf("%d%d",0,101); else if(c=='6') printf("%d%d",0,110); else if(c=='7') printf("%d%d",0,111); else if(c=='8') printf("%d",1000); else if(c=='9') printf("%d",1001); else if(c=='A') printf("%d",1010); else if(c=='B') printf("%d",1011); else if(c=='C') printf("%d",1100); else if(c=='D') printf("%d",1101); else if(c=='E') printf("%d",1110); else if(c=='F') printf("%d",1111); } void first(char c)/*第一个16进制数转化为2进制*/ { if(c=='1') printf("%d",1); else if(c=='2') printf("%d",10); else if(c=='3') printf("%d",11); else if(c=='4') printf("%d",100); else if(c=='5') printf("%d",101); else if(c=='6') printf("%d",110); else if(c=='7') printf("%d",111); else if(c=='8') printf("%d",1000); else if(c=='9') printf("%d",1001); else if(c=='A') printf("%d",1010); else if(c=='B') printf("%d",1011); else if(c=='C') printf("%d",1100); else if(c=='D') printf("%d",1101); else if(c=='E') printf("%d",1110); else if(c=='F') printf("%d",1111); } main() { int i,j,l; char x[81]; printf("输入16进制的数(用大写字母表示A、B、C、D、E、F),数字长度不超过一行\n"); while(scanf("%s",&x)!=EOF) { printf("输出转换成的2进制数\n"); i=0; l=strlen(x); if(x[i]=='0') i++; first(x[i]); for(j=i+1;j<l;j++) { judge(x[j]); if(j==l-1) printf("\n"); } printf("输入16进制的数\n"); } } 。
    。

2012-05-09

scanf用%X作参数读入十六进制, itoa参数里设置2进制输出成字符串, 打印出来就好了

2012-05-04

先把16进制转变成十进制,把十进制变成二进制

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报