十六进制
十六进制(Hex、16 进制)是一种逢十六进一的计数法,用 0-9 和 A-F 共 16 个符号表示数值,其中 A 到 F 依次对应十进制的 10 到 15。它最大的价值在于与二进制的天然对应:每 4 个二进制位(一个 nibble)正好对应 1 位十六进制,所以 1 个字节可以用 2 位十六进制精确表示,既比二进制紧凑,又不丢失任何位级信息。
因此它常出现在内存地址、颜色值(#RRGGBB)、字符编码、哈希摘要以及二进制文件查看(hexdump)等场景。数字字面量通常加前缀 0x(如 0xFF 等于 255),颜色则用 # 前缀。
使用时需注意几点:
- 十六进制只是数字的一种书写形式,不改变数值大小,
0xFF、255、0b11111111是同一个数。 - 大小写不影响数值,
0xff与0xFF相等,但哈希等场景习惯统一大小写。 - 别把十六进制字符串和它表示的字节混淆:字符串
"FF"是两个字符,代表的却是一个字节0xFF。
常见问题
十六进制和二进制怎么快速互转?
每 4 个二进制位对应 1 位十六进制。二进制转十六进制时从右往左每 4 位分组、逐组转换即可,例如 1111 1010 就是 FA;反过来把每位十六进制展开成 4 位二进制。
0x 和 # 前缀有什么区别?
两者后面都是十六进制数。0x 是编程语言里数字字面量的常见写法(如 0xFF),# 通常用于颜色值(如 #FF0000)。只是不同场景的书写约定,不影响实际数值。
为什么用字母 A-F,而不继续往后用数字?
十六进制需要 16 个互不相同的单字符符号,而 0-9 只有 10 个不够用,于是借用字母 A-F 表示 10 到 15,保证每一位仍是单个字符、便于紧凑书写。