Hexadecimal Notation
跳到导航
跳到搜索
十六进制表示法(Hexadecimal notation)只是表示数字的另一个进制(Base),同样的还比如二进制。
十六进制中有16位数字:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E和F。 0到9保留其正常含义,十六进制中的A到F在十进制表示法中是10到15。 作为任何进制,我们都可以通过通用地写出整个数来计算给定数字的值,比如1CA。 十六进制的1CA和以下形式相同:
A*Base^0+C*Base^1+1*Base^2
转换为十进制中,这意味着
10*16^0 + 12*16^1 + 1*16^2
让我们看看这个数字是什么:
10 + 12*16 + 16*16 = 10 + 192 + 256 = 202 + 256 = 458
所以十六进制的1CA和十进制的458是一样的。
十六进制记数法很有用,因为它可以让你轻松地使用二的幂,而不必用二进制写出来。 从十六进制到二进制的转换很容易:每个十六进制数是4位,所以每个十六进制数字对应一个4位的序列。
Hex | Binary | Base 10 |
---|---|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
A | 1010 | 10 |
B | 1011 | 11 |
C | 1100 | 12 |
D | 1101 | 13 |
E | 1110 | 14 |
F | 1111 | 15 |
要转换长数字,只需将十六进制数字替换为相应的位序列。 例如
1CA (hex) = 0001 1100 1010 (bin) = 111001010 (bin)
两个十六进制数字正好对应一个字节(8位),与十进制中奇怪的255限制不同,十六进制字节限制是FF。
在编程语言中,十六进制数通常以“0x”作为前缀,以使编译器知道你使用的是十六进制数。 例如:
0x123 0x0 0xABCDEF 0xCD
另一方面,汇编程序使用后缀“h”来匹配二进制的后缀“b”。 大多数汇编程序也会接受“0x”前缀符号,这通常更清晰。