二进制换十六进制

二进制怎么转换成16进制啊 具体点啊 ··

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-21
二进制整数转换为十六进制整数:
从右向左分组,每4位一组,不够则在左边补0。
4位数值,分别对应十六进制8、4、2、1,累加4位,(10到15分别用ABCDEF表示)

0101 1011 1011
运算为:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由于10为A,所以11即B)
1011 = 8+2+1 = 11(由于10为A,所以11即B)
结果为:5BB

二进制小数部分转换为十六进制小数部分则是从右向左分组,不够在左边补0。
如二进制小数:
0.1100111
转化为十六进制数,应分组为:0.1100 1110,转化后为0.CD

参考资料:http://zhidao.baidu.com/question/22813923.html?fr=qrl3

第2个回答  2007-06-21
二进制与十六进制的关系
2进制 0000 0001 0010 0011 0100 0101 0110 0111
16进制 0 1 2 3 4 5 6 7
2进制 1000 1001 1010 1011 1100 1101 1110 1111
16进制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)
可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:
3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102
右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。
第3个回答  2007-06-21
最简单的方法:
如二进制的“10110111011”:
换八进制时,从右到左,三位一组,不够补0,即成了:
010 110 111 011
然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加【备注】,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
结果为:2673

而换十六进制时其实也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为:
0101 1011 1011
运算为:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由于10为A,所以11即B)
1011 = 8+2+1 = 11(由于10为A,所以11即B)
结果为:5BB

注意,二进制数转化为八进制数、十六进制数时,对于分组,整数部分是从右向左分组,不够在左边补0,而小数部分则是从左向右分组,不够在右边补0,

如二进制小数:
0.1100111
转化为八进制数,应分组为:0.110 011 100 ,转化后为0.634
转化为十六进制数,应分组为:0.1100 1110,转化后为0.CD

备注:常见进制数之间的算关系表:
二 …… 八……十……十六(进制)
0000 ……0 ……0 ……0
0001 ……1…… 1…… 1
0010 ……2…… 2…… 2
0011 ……3…… 3…… 3
0100 ……4 ……4 ……4
0101 ……5 ……5 ……5
0110 ……6 ……6 ……6
0111 ……7 ……7 ……7
1000 ……10……8 ……8
1001 ……11……9 ……9
1010 ……12……10……A
1011 ……13……11……B
1100 ……14……12……C
1101 ……15……13……D
1110 ……16……14……E
1111 ……17……15……F
第4个回答  2007-06-21
二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。

我们也一样,只要学完这一小节,就能做到。

首先我们来看一个二进制数:1111,它是多少呢?

你可能还要这样计算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。

然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。

记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。

下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)

仅4位的2进制数 快速计算方法 十进制值 十六进值

1111 = 8 + 4 + 2 + 1 = 15 F

1110 = 8 + 4 + 2 + 0 = 14 E

1101 = 8 + 4 + 0 + 1 = 13 D

1100 = 8 + 4 + 0 + 0 = 12 C

1011 = 8 + 4 + 0 + 1 = 11 B

1010 = 8 + 0 + 2 + 0 = 10 A

1001 = 8 + 0 + 0 + 1 = 10 9

....

0001 = 0 + 0 + 0 + 1 = 1 1

0000 = 0 + 0 + 0 + 0 = 0 0

二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

如(上行为二制数,下面为对应的十六进制):

1111 1101 , 1010 0101 , 1001 1011

F D , A 5 , 9 B

反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?

先转换F:

看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。

接着转换 D:

看到D,知道它是13,13如何用8421凑呢?应该是:8 + 2 + 1,即:1011。

所以,FD转换为二进制数,为: 1111 1011

由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。
相似回答