进制转换器
程序员的日常:一行输入,四种进制同时算
四种进制是什么
计算机世界的四种常用计数方式
二进制(BIN):只有 0 和 1,逢二进一。计算机电路只有"通电/断电"两种稳定状态,所以底层一律用二进制存储和运算,每一个 0 或 1 称为 1 位(bit)。
八进制(OCT):0~7 共八个数字,逢八进一。日常最常见的场景是 Linux 文件权限:755 表示所有者可读可写可执行(7 = rwx)、同组和其他人可读可执行(5 = r-x)。
十进制(DEC):0~9,逢十进一,日常计数方式。程序里调试接口、看日志时需要把二进制/十六进制"翻译"回十进制来理解数量大小。
十六进制(HEX):0~9 加 A~F(表示 10~15),逢十六进一。1 个十六进制位恰好等于 4 个二进制位,写起来短,所以广泛用于网页颜色(#FF6600)、内存地址、MAC 地址、哈希值等场景。
换算方法速查
手算进制转换的常用套路
二进制 → 十进制:按权展开
从右往左第 n 位的权重是 2ⁿ⁻¹。1011₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11
十进制 → 二进制:除 2 取余,倒序排列
11 ÷ 2 = 5 余 1,5 ÷ 2 = 2 余 1,2 ÷ 2 = 1 余 0,1 ÷ 2 = 0 余 1;把余数从下往上读就是 1011。
二进制 ↔ 十六进制:每 4 位一组直接查表
记住 8 4 2 1 口诀:1111 = 8+4+2+1 = F。1111 1111 ↔ FF,1010 1100 ↔ AC,不到 4 位在左边补零再分组。
二进制 ↔ 八进制:每 3 位一组
3 个二进制位恰好覆盖 0~7:11 111 111 ↔ 3 7 7 = 377₈,与十六进制同理,只是分组更短。
十六进制 → 十进制:按权展开
从右往左第 n 位的权重是 16ⁿ⁻¹。FF = 15×16 + 15 = 255,CAFE = 12×4096 + 10×256 + 15×16 + 14 = 51966。
2 的幂速记表:程序员要背的数字
2⁴=16、2⁶=64、2⁸=256、2¹⁰=1024、2¹²=4096、2¹⁶=65536、2³²=4294967296——记住它们,掩码和地址一眼就能估出来。
子网掩码实例:255.255.255.0 ↔ 0xFFFFFF00
IP 地址每一段 0~255 恰好是 2 个十六进制位:FF.FF.FF.00,写成连续十六进制就是 0xFFFFFF00,二进制为 24 个 1 加 8 个 0。
网页颜色实例:#FF6600 ↔ 255, 102, 0
十六进制颜色每两位一个通道:FF=红 255、66=绿 102、00=蓝 0,合起来是橙色 RGB(255, 102, 0),对应十进制 16737792。
常见问题
关于进制转换的常见疑问解答
为什么计算机要用二进制?
十六进制里的 A~F 是什么意思?
0b、0o、0x 这些前缀是什么?
Linux 权限 755 是什么意思?
为什么 2 的 10 次方是 1024 不是 1000?
网页颜色 #FFFFFF 为什么是白色?
支持多大的数字?
相关工具
电脑网络 · 其他常用工具