二进制、八进制与十六进制:深入理解常用数制基数

全面解析十进制、二进制、八进制和十六进制的工作原理,探讨计算机采用二进制的核心原因,并演示相互转换步骤。

人类使用十进制(基数10)源于人类天生有十根手指;而计算机使用二进制(基数2)是因为晶体管的物理状态只有通电(开)和断电(关)两种。理解数制基数对软件开发、网页色彩处理(CSS HEX)和计算机底层架构至关重要。

四种常见的数制基数

基数 名称 字符集 主要应用场景
10 十进制 (Decimal) 0–9 日常生活与数学运算
2 二进制 (Binary) 0–1 计算机硬件、门电路逻辑
8 八进制 (Octal) 0–7 Unix 系统文件权限、紧凑二进制
16 十六进制 (Hexadecimal) 0–9, A–F 内存地址显示、CSS 颜色代码

二进制的运行机制

二进制仅由 0 和 1 构成。每一个数位代表 2 的幂次方:1, 2, 4, 8, 16, 32, 64, 128。二进制数字 11111111 转换为十进制为 255(即 128+64+32+16+8+4+2+1)。

计算示例: 将十进制数 255 转换为二进制。使用短除法除以 2 并自下而上记录余数:

  • 255 ÷ 2 = 127 余 1
  • 127 ÷ 2 = 63 余 1
  • 63 ÷ 2 = 31 余 1
  • 31 ÷ 2 = 15 余 1
  • 15 ÷ 2 = 7 余 1
  • 7 ÷ 2 = 3 余 1
  • 3 ÷ 2 = 1 余 1
  • 1 ÷ 2 = 0 余 1

最终二进制结果为:11111111。可使用 base converter 快速核对。

生活中的十六进制:以网页颜色为例

HTML 颜色代码采用十六进制:例如 #FF5733 表示红色通道为 FF(255),绿色通道为 57(87),蓝色通道为 33(51)。一个十六进制字符恰好对齐 4 个二进制位(半字节),因此一个标准字节(0–255)能工整地压缩为两位十六进制字符(00–FF)。

程序员为什么偏好十六进制

相比冗长的 0 和 1 字符串,十六进制表达非常精炼,且与现代计算机的字节对齐结构完美契合。

常见问题

程序员为何大量使用十六进制? 因为 1 个十六进制位精准对应 4 个二进制位,比冗长的二进制串易读得多。

编程中的 0x 前缀是什么含义? 0x 代表紧随其后的数字属于十六进制表示,例如 0xFF 对应十进制数值 255。

如何快速换算二进制? 从右向左每 4 位划分为一组直接转为对应十六进制字符。关于 2 的幂次运算请参阅 exponents explained