十六进制
| 十六进制 | |
|---|---|
| 术语名称 | 十六进制 |
| 英语名称 | hexadecimal numeral system |
| 别名 | base-16 numeral system, hexadecimal |
| 十六进制的 | |
|---|---|
| 术语名称 | 十六进制的 |
| 英语名称 | hexadecimal |
| 别名 | base-16, hex |
| 十六进制数 | |
|---|---|
| 术语名称 | 十六进制数 |
| 英语名称 | hexadecimal number |
十六进制(hexadecimal, base-16, 缩写为 hex)记数系统指基数为 16 的进位制记数法。是指通过 0~9 及 A~F 十六个符号表达数值的满十六进一的记数方法。
由于十六进制可以作为二进制的缩写,计算机科学领域中,经常使用十六进制表达二进制数据。
本文仅指数学上的进制,作为一种编码的 base16 见 RFC 4648 。
定义
基数为 16 的进位制记数法称为十六进制记数法(hexadecimal numeral system, base-16 numeral system, 简称 hexadecimal, base-16)。
十六进制记数法下的数称为十六进制数(hexadecimal numeral)。
类似地,“十六进制系统相关的”往往使用十六进制的(hexadecimal, 常缩写为 hex, 或 base-16)作为前缀。
表示
十六进制中的每一位只含有十六个符号,按通常习惯,会使用阿拉伯数字 0~9 及拉丁字母 A~F 。尽管存在其他选择,较为广泛接受的仍然是前 6 个拉丁字母。在写成数形式时,遵从进位制记数法的一般规则,由权重更高的位到权重更低的位写成一串,且存在小数部分时在位权为 [math]\displaystyle{ 16^0=1 }[/math] 的位后添加小数点。如 [math]\displaystyle{ \mathrm{27C.5E} }[/math] 。
若需要指出具体进制时,可使用一般的添加进制下标的形式,即 [math]\displaystyle{ \mathrm{27C}_{16} }[/math] 或 [math]\displaystyle{ (\mathrm{27C})_{16} }[/math] 。也有人使用缩写下标或后缀,即 [math]\displaystyle{ \mathrm{27C}_\mathrm{hex} }[/math] 或 [math]\displaystyle{ \mathrm{27C}\mathrm{h} }[/math] 。
在编程语言,特别是 C 风格语言中,十六进制数通常加前缀 0x 或 0X ,即 0x27C 或 0X27C 。在 BASIC 风格语言中,十六进制数通常加前缀 &H ,即 &H27C 。
分隔符
有时对十六进制数使用类似千位分隔符的方式分段以便阅读。通常写数字时不会出现较大的十六进制数字,此时一般不会分段。但是在表示二进制数据时,可能出现较长的十六进制数,此时每两个十六进制位(对应一个字节)或每四个十六进制位(对应两个字节)进行分隔。
数值及转换
转换工具
使用工具站中的进制转换器:点此使用进制转换器。
位权
对十六进制数,其小数点前的最低位,或直接称为最低位,位权为 1 ,向高位依次为 [math]\displaystyle{ 16,16^2,16^3,\cdots }[/math] 。
如果存在小数部分,则向低位也依次为 [math]\displaystyle{ 16^{-1},16^{-2},16^{-3},\cdots }[/math] 。
十六进制转换为十进制
计算一个十六进制数的十进制表示时,可以通过计算对应位权相加的方式,即 [math]\displaystyle{ a_n 16^n + a_{n-1} 16^{n-1} + \cdots + a_1 16^1 + a_0 }[/math] ,也可以通过秦九韶算法将其看作多项式求值 [math]\displaystyle{ ((\cdots(a_n x + a_{n-1}) x + \cdots + a_1) x + a_0) \mid_{x=16} }[/math] 。
十进制转换为十六进制
短除法:不断对 16 做带余除法,将余数作为得到的位,商继续循环,直到 0 为止。余数从最低位依次到最高位排列。
二进制转换为十六进制
因为 16 本身是 2 的幂,这使得 16 进制中每位的位权和 2 进制中每四位的位权之间有对应关系。将一个二进制数按照位权为 1 的数位对齐的方式划分成 4 个一组的形式,则新的形式就可以看成一个十六进制数,且其中每一位数都进一步地通过 4 位二进制数表示。将这些二进制数表示对应地换成十六进制中的符号,就得到了对应整个数的十六进制表示。
十六进制转换为二进制
以上过程的逆过程,将十六进制数每一位上的符号替换为 4 位二进制数(位数不足则补 0 ),就得到了一个被 4 位分隔的二进制数。
一些常见数值表示
对有限小数,不列出其对应的无限循环小数形式。
| 整数(十进制) | 整数(十六进制) | 分数(十进制) | 小数(十六进制) |
|---|---|---|---|
| 1 | 1 | 1/1 | 1 |
| 2 | 2 | 1/2 | 0.8 |
| 3 | 3 | 1/3 | [math]\displaystyle{ 0.\overline{5} }[/math] |
| 4 | 4 | 1/4 | 0.4 |
| 5 | 5 | 1/5 | [math]\displaystyle{ 0.\overline{3} }[/math] |
| 6 | 6 | 1/6 | [math]\displaystyle{ 0.2\overline{\mathrm{A}} }[/math] |
| 7 | 7 | 1/7 | [math]\displaystyle{ 0.\overline{249} }[/math] |
| 8 | 8 | 1/8 | 0.2 |
| 9 | 9 | 1/9 | [math]\displaystyle{ 0.\overline{1\mathrm{C}7} }[/math] |
| 10 | A | 1/10 | [math]\displaystyle{ 0.1\overline{9} }[/math] |
| 11 | B | 1/11 | [math]\displaystyle{ 0.\overline{1745\mathrm{D}} }[/math] |
| 12 | C | 1/12 | [math]\displaystyle{ 0.1\overline{5} }[/math] |
| 13 | D | 1/13 | [math]\displaystyle{ 0.\overline{13\mathrm{B}} }[/math] |
| 14 | E | 1/14 | [math]\displaystyle{ 0.1\overline{249} }[/math] |
| 15 | F | 1/15 | [math]\displaystyle{ 0.\overline{1} }[/math] |
| 16 | 10 | 1/16 | 0.1 |
| 17 | 11 | 1/17 | [math]\displaystyle{ 0.\overline{0\mathrm{F}} }[/math] |
| 18 | 12 | 1/18 | [math]\displaystyle{ 0.0\overline{\mathrm{E}38} }[/math] |
| 19 | 13 | 1/19 | [math]\displaystyle{ 0.\overline{0\mathrm{D}79435\mathrm{E}5} }[/math] |
| 20 | 14 | 1/20 | [math]\displaystyle{ 0.0\overline{\mathrm{C}} }[/math] |
| 记数系统 | ||||
|---|---|---|---|---|
| 位值制 记数法 |
进位制记数法/标准位值制记数法(进制) | 二进制、八进制、十进制、十六进制、…… | ||
| 非标准 位值制 记数法 |
符号数字 进位制记数法 |
平衡进位制记数法 (平衡进制) |
平衡三进制、…… | |
| 双射进位制记数法 (双射进制) |
双射十进制、双射二十六进制、…… | |||
| 位权是幂 但基数不是自然数 (非自然数进制) |
[math]\displaystyle{ -2 }[/math] 、 [math]\displaystyle{ -4 }[/math] 、…… | |||
| [math]\displaystyle{ \sqrt{2} }[/math] 、 [math]\displaystyle{ \sqrt{3} }[/math] 、 [math]\displaystyle{ \sqrt[12]{2} }[/math] 、…… | ||||
| [math]\displaystyle{ 2i }[/math] 、 [math]\displaystyle{ \sqrt[4]{2}i }[/math] 、 [math]\displaystyle{ 2\omega }[/math] 、 [math]\displaystyle{ \sqrt[3]{2}\omega }[/math] 、 [math]\displaystyle{ -1\pm i }[/math] 、…… | ||||
| 位权不是幂 | 存在基数 (混合进制) |
二五混合进制、阶乘进制、…… | ||
| 广义位值制记数法 | [math]\displaystyle{ p }[/math]-进数 | |||
| 质数记数法、…… | ||||
| 符值制记数法 | (双射)一进制、罗马记数法、希腊记数法、…… | |||