二进制转换成十六进制

例如101010和1011010.10B怎么转换成十六进制,要简单易懂,和技巧
2024-12-19 19:38:45
推荐回答(5个)
回答1:

二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个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进制。

回答2:

回答3:

(101010)B = (2A)H,(1011010.10)B = (5A.8)H二进制转十六进制:每四位连续的二进制数刚好转换成一位十六进制数划分四位数的时候,从小数点开始向左划分整数部分,向右划分小数部分转换的时候,处在不同位置的数字权重不同,四个数字的加权和就是转换的结果二进制数从左向右,权值分别为 2^3 = 8,2^2 = 4,2^1 = 2,2^0 = 1四位二进制数 (abcd)B,转换成十六进制就是 (a*8 + b*4 + c*2 + d*1)H比如:(101010)B = (0010 1010)B = (0+0+2+0 8+0+2+0)H = (2 10)H = (2A)H(1011010.10)B = (0101 1010 . 1000)B = (0+4+0+1 8+0+2+0 . 8+0+0+0)H = (5 10 . 8)H = (5A.8)H

回答4:

首先呢你将每4位2进制分成一部分。
例如你说的 (10) (1010)答案是2 A因为由每一部分的最右面开始数分别是1、2、4、8是1的话就将对应的相加,0就无视。所以就是(从右面开始)0+2+0+8得出10。10对应A。而另外一部分(10)就等于(0010)那么就是0+2+0+0。再将这些组合起来就是2A了

回答5:

四位二进制对应一位十六进制,从右到左开始划分,不足四位在最左边添加0,那么,101010 = 0010 1010转换成十六进制就是对应的:2A