跳到正文
IGCSE·Tuition
计算机科学 · 课程

把十六进制当作简短写法

B 和 F 这样的十六进制字母看起来奇怪,其实只是超过九的单个数字。

本页内容
  1. 四位与一个十六进制数字怎样对应?
  2. 怎样在二进制与十六进制之间转换?
  3. 示范例子
  4. 可以用代码检查十六进制转换吗?
  5. 要留意的错误
  6. 自我检查
  7. 接下来学什么

十六进制(hexadecimal,简称 hex)是基数 16:有十六个数字,0 到 9,再加 A 到 F。因为 16 = 24,所以一个十六进制数字正好是四位。十六进制只是更简短的二进制写法,并不是计算机另一种存储方式。

这一课建立在二进制与十进制互换之上,属于数字与文字的表示。

四位与一个十六进制数字怎样对应?

四位(一个 nibble)可以表示 0 到 15,正好是十六个十六进制数字。

十进制二进制十六进制十进制二进制十六进制
000000810008
100011910019
200102101010A
300113111011B
401004121100C
501015131101D
601106141110E
701117151111F

这张表不必死记。二进制那一栏只是位值 8、4、2、1,你几秒钟就能重建任何一行。

怎样在二进制与十六进制之间转换?

二进制转十六进制:

  1. 把各位分成每四位一组,从右边开始。最后一组不足时,在左边补 0。
  2. 用 8、4、2、1 把每组转成 0 到 15 的数。
  3. 把每个数写成一个十六进制数字。

十六进制转二进制: 把每个十六进制数字换成它的四位。

十六进制转十进制: 左边的数字乘以 16,再加右边的数字。

示范例子

把 10111100 转成十六进制,再转成十进制。

第 1 步,分组: 1011 和 1100。

第 2 步,转换每组: 1011 = 8 + 2 + 1 = 11 = B。1100 = 8 + 4 = 12 = C。

第 3 步,十六进制答案: BC。

第 4 步,十进制: B 是 11,C 是 12,所以 11 × 16 + 12 = 176 + 12 = 188。

检查: 二进制 10111100 是 128 + 32 + 16 + 8 + 4 = 188。两条路线结果一致。

反过来,十六进制 3F 变成 0011 和 1111,二进制是 00111111。十进制是 3 × 16 + 15 = 63,而 32 + 16 + 8 + 4 + 2 + 1 也是 63。

可以用代码检查十六进制转换吗?

可以。在 Python 中,hex(188) 得到 '0xbc',int("BC", 16) 得到 188,format(188, "08b") 得到 10111100。可以在 Python 推理沙盒试一试。

用代码来验证你在纸上的做法,而不是取代它,因为考试要求你写出方法。

要留意的错误

常见的失误是位数不是 4 的倍数时,从左边开始分组。

题目: 把 1101101(7 位)转成十六进制。

错误做法: 从左边分组:1101 和 101,得到 D 和 5,答案 D5。

D5 的十进制是 213,但 1101101 是 64 + 32 + 8 + 4 + 1 = 109。应该从右边分组,并在左边补 0:0110 1101,也就是 6 和 13,所以是 6D。检查:6 × 16 + 13 = 109。

自我检查

1. 把十六进制 7E 转成二进制和十进制。

查看答案

7 = 0111,E = 14 = 1110,所以二进制是 01111110。十进制:7 × 16 + 14 = 112 + 14 = 126。检查:64 + 32 + 16 + 8 + 4 + 2 = 126。

2. 把 11110001 转成十六进制。

查看答案

分组:1111 和 0001。1111 = 15 = F,0001 = 1。答案是 F1。十进制是 15 × 16 + 1 = 241。

3. 说出程序员把 255 写成 FF 的一个理由。

查看答案

FF 代表 1111 1111,是 8 位的最大值(255)。它只需要 两个字符而不是八个,更短,读写和复制时也更不容易出错。

接下来学什么

接下来练习二进制加法并留意溢出,再用综合练习检验整个单元。如果你总在分组或 A 到 F 上出错,可以找线上一对一 Computer Science 补习的老师陪你练,直到转换不必再看表。

常见问题

为什么用十六进制而不直接用二进制?

二进制串很长,容易看错。一个十六进制数字正好代表四位,所以一个 8 位的字节只要两个十六进制数字。人读写起来更短,而计算机存储的仍然是普通的二进制。

十六进制里的 A 到 F 代表什么?

十六进制有十六个数字:0 到 9,然后 A = 10,B = 11,C = 12,D = 13,E = 14,F = 15。用字母是因为每个数字必须是单个符号,否则 10 到 15 要用两个符号。

十六进制在现实中用在哪里?

常见例子有网页颜色代码、MAC 地址、内存地址和错误代码。请查看你考试年份的大纲,了解 Cambridge 列出的例子,并准备好解释十六进制为什么适合它们。

怎样把十六进制直接转成十进制?

把左边的数字乘以 16,再加上右边的数字。以 3F 为例:3 × 16 = 48,加 15 得 63。更长的数各列值是 1、16、256 等,但两位数最常见。

资料来源

  1. Cambridge IGCSE Computer Science 0478 课程大纲页面

更新于:

下一步

如果一出现字母你就靠猜,一对一的老师可以和你重建 0 到 15 的对应关系,再用新的数值练到稳固为止。

一小时付费试听课,按所安排老师确认的收费,RM80 起。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

家长:在这里咨询

  • 已通过我们的服务帮助 9,000+ 名学生
  • 9+ 年帮助 IGCSE 学生