你身边的百科全书

懂事百科

如何把二进制转换为十六进制

本文将解释如何将二进制(基数是2)转换为十六进制(基数是16)。无论是编码、上数学课还是想看懂《火星救援》,十六进制在转换一长串二进制字符串的时候方便又高效。由于两个基数都是2的幂,因此这个过程比十进制转换为二进制要简单得多。只要会基本的加法和计数,就能把二进制数字转换为十六进制数字。

本文将解释如何将二进制(基数是2)转换为十六进制(基数是16)。无论是编码、上数学课还是想看懂《火星救援》,十六进制在转换一长串二进制字符串的时候方便又高效。由于两个基数都是2的幂,因此这个过程比十进制转换为二进制要简单得多。只要会基本的加法和计数,就能把二进制数字转换为十六进制数字。

步骤

方法 1
方法 1 的 2:

基本转换


  1. 1
    二进制数字转换需要用最多四位数的数列进行转换。二进制数字只能是1和0,十六进制数字可以是0-9或A-F,因为十六进制是以16为基数。你可以将任何二进制字符串转换为十六进制(1,01,101101,等等),但你需要四个数字才能进行转换(0101→5;1100→C, 等等)。在本课程里,从示例1010开始。

    • 1010
    • 如果不够4位数,需要在前面添加0补足4位。也就是说,01要变为0001。

  2. 2
    在最后一位数字上方写一个小“1”。四个数字中的每一位都表示一种十进制数字编号。最后一个数字是一个位置。在下一步中我们来了解其余数字。现在先在最后一位数字上面写一个小的1。

    • 1010
    • 1010 1 {\displaystyle 1010^{1}}
    • 注意,这不是要求任何数字的平方,只是数字本身所代表的意义。

  3. 3
    在第三个数字上方写一个小“2”,在第二个数字上方写一个“4”,在第一个数字上方写一个“8”。这些是位数标记。如果你一定要知道这是什么,这是因为每个数字代表不同的2的幂。第一个是 2 3 {\displaystyle 2^{3}} ,第二个是 2 2 {\displaystyle 2^{2}} ,以此类推。

    • 1010
    • 1 8 0 4 1 2 0 1 {\displaystyle 1^{8}0^{4}1^{2}0^{1}}

  4. 4
    算出每一“位”的数量。幸运的是,一旦有了四个数字,并且知道它们的含义,转换就变得很容易了。如果第一个数字是1,那么就会得到8。如果第二列是0,那就没有4。第三列告诉你有多少2,第二列有多少1。就我们的例子来说:

    • 1010
    • 1 8 0 4 1 2 0 1 {\displaystyle 1^{8}0^{4}1^{2}0^{1}}
    • 8 0 2 0

  5. 5
    将四个数字加在一起。获得新的十六进制数字后,只需把它们相加即可。

    • 1010
    • 1 8 0 4 1 2 0 1 {\displaystyle 1^{8}0^{4}1^{2}0^{1}}
    • 8 0 2 0
    • 8 + 0 + 2 + 0 = 10 {\displaystyle 8+0+2+0=10}
    • 最终答案: 二进制数字1010在十六进制系统中转换为A

  6. 6
    把大于“9”的所有数字更改为字母。这样你在阅读十六进制时就不会感到困惑。比如说是1和5,还是15?这个系统非常简单,因为不能有大于15的十六进制数。只需从10开始使用字母,这样一来:

    • 10 = A {\displaystyle 10=A}
    • 11 = B {\displaystyle 11=B}
    • 12 = C {\displaystyle 12=C}
    • 13 = D {\displaystyle 13=D}
    • 14 = E {\displaystyle 14=E}
    • 15 = F {\displaystyle 15=F}

  7. 7
    我们来多试几个例子,让你更熟悉转换方式。以下示例的答案在每道题的最下面,以白色显示。单击并拖动鼠标,突出显示问题下的区域来查看答案。

    • 把 1 转为十六进制。
      • Add zeros to get four digits: 0001
      • Find your place holders: 0 8 0 4 0 2 1 1 {\displaystyle 0^{8}0^{4}0^{2}1^{1}}
      • Add up the digits: 0 + 0 + 0 + 1 = 1 {\displaystyle 0+0+0+1=1}
      • Final answer: 1
    • 把 0101 转为十六进制。
      • Add zeros to get four digits: 0101
      • Find your place holders: 0 8 1 4 0 2 1 1 {\displaystyle 0^{8}1^{4}0^{2}1^{1}}
      • Add up the digits: 0 + 4 + 0 + 1 = 5 {\displaystyle 0+4+0+1=5}
      • Final answer: 5
    • 把 1110 转为十六进制。
      • Add zeros to get four digits: 1110
      • Find your place holders: 1 8 1 4 1 2 0 1 {\displaystyle 1^{8}1^{4}1^{2}0^{1}}
      • Add up the digits: 8 + 4 + 2 + 0 = 14 {\displaystyle 8+4+2+0=14}
      • Final answer: E
    • 把 1011 转为十六进制。
      • Add zeros to get four digits: 1011
      • Find your place holders: 1 8 0 4 1 2 1 1 {\displaystyle 1^{8}0^{4}1^{2}1^{1}}
      • Add up the digits: 8 + 0 + 2 + 1 = 11 {\displaystyle 8+0+2+1=11}
      • Final Answer: B
方法 2
方法 2 的 2:

转换二进制长字符串


  1. 1
    把二进制数字串从右侧开始分成四个一组。十六进制把4个二进制位数转换为一个十六进制单位。要转换数字,首先要从右侧开始将数字分成四个一组。例如:

    • 11101100101001 {\displaystyle 11101100101001} 转为十六进制数字。
    • 11101100101001 = ( 11 ) ( 1011 ) ( 0010 ) ( 1001 ) {\displaystyle 11101100101001=(11)(1011)(0010)(1001)}

  2. 2
    如果第一组数字不是4位,在前面加0。0不会影响转换,但它们会使数字更直观。记住,每一组都必须是4位二进制数。

    • 11101100101001 {\displaystyle 11101100101001} 转为十六进制数字。
    • 11101100101001 = ( 11 ) ( 1011 ) ( 0010 ) ( 1001 ) {\displaystyle 11101100101001=(11)(1011)(0010)(1001)}
    • ( 11 ) ( 1011 ) ( 0010 ) ( 1001 ) = {\displaystyle (11)(1011)(0010)(1001)=} ( 0011 ) ( 1011 ) ( 0010 ) ( 1001 ) {\displaystyle (0011)(1011)(0010)(1001)}

  3. 3
    每次转换一组4位二进制数。每个二进制数组单独转换,尽量在草稿纸上把数组分开,以方便处理。把每个四位字符串转换为对应的十六进制字符串。在我们的例子里:

    • 0011 = 0 + 0 + 2 + 1 = 3 {\displaystyle 0011=0+0+2+1=3}
    • 1011 = 8 + 0 + 2 + 1 = 11 = B {\displaystyle 1011=8+0+2+1=11=B}
    • 0010 = 0 + 0 + 2 + 0 = 2 {\displaystyle 0010=0+0+2+0=2}
    • 1001 = 8 + 0 + 0 + 1 = 9 {\displaystyle 1001=8+0+0+1=9}

  4. 4
    删除空格就能生成十六进制数。所有4位数组转换完毕后,将它们连在一起,就能得到最终的答案。所以,对于上面的例子:

    • ( 0011 ) ( 1011 ) ( 0010 ) ( 1001 ) {\displaystyle (0011)(1011)(0010)(1001)}
    • 3 B 2 9
    • 11101100101001 = 3 B 29 {\displaystyle 11101100101001=3B29}

  5. 5
    记住或对照转换表,看看结果否正确。4位二进制代码一共只有16种可能,如果你不想单独计算每个字符串,可以使用下面这张转换表 .
Binary   Hexadecimal  
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

小提示

  • 和十六进制转换不同,要将二进制文件转为八进制系统,需要将3个二进制数分为一组。
  • 二进制的基数是2,只有1和0这两个数字。十六进制是基数为16的系统。你能弄明白为什么你需要四个二进制数来转换成十六进制吗?这是因为 2 4 = 16 {\displaystyle 2^{4}=16} ,你需要四个独立的二进制数。

警告

  • 如果你想算出某个二进制编码地址对应的十六进制编码地址,计算方法错误就会搞乱十六进制编码地址。

暂无评论