十六进制转十进制
本课属于 Coddy Assembly 学习旅程的“基础知识”单元。第 11 课,共 45 课。
十六进制(基数为 16)与二进制和十进制的原理相同:每个位置都有一个位值。在十六进制中,每个位置都是 16 的幂。
十六进制中的位值:
| 位置 | 16 的幂 | 十进制值 |
|---|---|---|
| 最右边 | 16⁰ | 1 |
| 下一位 | 16¹ | 16 |
| 下一位 | 16² | 256 |
| 下一位 | 16³ | 4096 |
需要记住的十六进制数字值:
| 十六进制 | 十进制 |
|---|---|
| 0-9 | 0-9 |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
示例 1:将 0x2A 转换为十进制
| 位置 | 十六进制数字 | 位值 | 计算 |
|---|---|---|---|
| 左侧 | 2 | 16 | 2 × 16 = 32 |
| 右侧 | A (10) | 1 | 10 × 1 = 10 |
| 总计 | 32 + 10 = 42 |
因此,0x2A 的十进制值是 42。
示例 2:将 0xFF 转换为十进制
| 位置 | 十六进制数字 | 位值 | 计算 |
|---|---|---|---|
| 左侧 | F (15) | 16 | 15 × 16 = 240 |
| 右侧 | F (15) | 1 | 15 × 1 = 15 |
| 总计 | 240 + 15 = 255 |
所以,0xFF 用十进制表示为 255。
示例 3:将 0x3E8 转换为十进制
| 位置 | 十六进制数字 | 位值 | 计算 |
|---|---|---|---|
| 左侧 | 3 | 256 | 3 × 256 = 768 |
| 中间 | E (14) | 16 | 14 × 16 = 224 |
| 右侧 | 8 | 1 | 8 × 1 = 8 |
| 总计 | 768 + 224 + 8 = 1000 |
0x3E8 的十进制值是 1000。
公式:
对于一个位数为…… d₂ d₁ d₀ 的十六进制数:
值 = (... + d₂ × 16² + d₁ × 16¹ + d₀ × 16⁰)
亲手试试
这节课没有代码挑战。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Assembly 在线编辑器
检查进制转换: 进制转换器