Menu
CoddyTech

为什么使用十六进制?

本课属于 Coddy Assembly 学习旅程的“基础知识”单元。第 10 课,共 45 课。

你现在知道计算机使用二进制了。那么,为什么汇编程序员很少直接编写二进制呢?

二进制的问题:

二进制数很长。来看这个例子:

数字二进制
25511111111
10001111101000
655351111111111111111

编写由 1 和 0 组成的长字符串很慢,容易出错,也难以阅读。

答案:十六进制(基数为 16)。

十六进制(或称“hex”)使用 16 个符号:

数字值
0-90 到 9
A10
B11
C12
D13
E14
F15

十六进制为什么非常适合计算机:

一位十六进制数字恰好表示 4 位(半个字节)。

位数所需的十六进制位数
4 位(半字节)1 位十六进制数
8 位(1 字节)2 位十六进制数
16 位(2 字节)4 位十六进制数
32 位(4 字节)8 位十六进制数
64 位(8 字节)16 位十六进制数

同一个数字的三种表示方式:

十进制二进制十六进制
25511111111FF
100011111010003E8
655351111111111111111FFFF

注意看,十六进制比二进制短很多。

你会在汇编中看到十六进制的地方:

  • 内存地址(例如 0x7FFF 或 0x402000)
  • ASCII 码(例如 0x41 表示 'A',0x0a 表示换行符)
  • 调试器中的寄存器值
  • 颜色值(例如表示红色的 0xFF0000)

十六进制数以一个前缀表示:

前缀示例含义
0x0xFF十六进制的 FF(十进制的 255)
$$FF含义相同(用于某些汇编器)
hFFh含义相同(较旧的写法)

在这门课程中,我们使用 0x 前缀:0x0a、0x41、0xFF。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Assembly 在线编辑器

检查进制转换: 进制转换器