爱问知识人 爱问共享资料 医院库

16进制转换成2进制

首页

16进制转换成2进制

16进制转换成2进制

提交回答
好评回答
  • 2019-02-24 11:03:32
    十六进制和二进制互转很简单
    只要将对应的每一个十六进制数转换成二进制,拼接起来就行了
    比如:
    $ABCD, A==>1010,B==>1011 C==>1100,D==>1101
    拼接:1010 1011 1100 1101 这就是二进制结果
    由于他们之间有对应关系,你完全可以使用查表的方式进行对应
    即:建立十六进制数字和二进制数据之间的对应表,根据十六进制数查找对应的二进制,反过来依然;
    楼上的方法是因为他不明白进制之间的关系,效率很低

    永***

    2019-02-24 11:03:32

其他答案

    2019-02-24 10:49:31
  •   /*思想:一般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  

    奈***

    2019-02-24 10:49:31

  • 2019-02-24 10:16:12
  • scanf用%X作参数读入十六进制,
    itoa参数里设置2进制输出成字符串,
    打印出来就好了

    俄***

    2019-02-24 10:16:12

  • 2019-02-24 10:13:21
  • 先把16进制转变成十进制,把十进制变成二进制

    h***

    2019-02-24 10:13:21

  • 2019-02-24 10:09:01
  •   /*思想:一般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  

    一***

    2019-02-24 10:09:01

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 177-196
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):