16进制转换成2进制16进制转换
/*思想:一般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"...全部
/*思想:一般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 收起