八进制是以 8 为基数的记数法,使用数字 0–7。下面重点说明标准要点。
八进制相关规范
- 只使用数字 0–7,出现其他字符就是非法写法
- 整数转换与端序无关,端序只在把数值按多字节放入内存时才出现
- 前导 0 不改变数值,但在某些语言里可能被当成八进制(老式 JavaScript、C)
- 有符号解读还要再叠加补码规则,不要把最高位是 1 的二进制直接当正数
示例
输入:十进制 100
转换结果:八进制 0o144(二进制 1100100,十六进制 0x64)
说明:按权展开校验:100 = 4×8^0+4×8^1+1×8^2。
工作原理
十进制转八进制:不断除以 8,倒序取余数。例如 42:42÷8=5 余 2,5÷8=0 余 5,得到 52。八进制转十进制:从右到左按 8^k 加权求和。
注意事项
- C 语言里以 0 开头的整数是八进制,写 09 会编译失败
- 不要把十六进制里的 B、D 和十进制字母 O、I 搞混,必要时用 0x 前缀
- 大数转换用程序或工具,不要手算时漏位
- 文本“10”在不同进制里值不同:二进制是 2,八进制是 8,十六进制是 16
本站的进制转换工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【八进制怎么读?】八进制读作“八进制”,英语 octal,前缀常用 0o 或传统的前导 0。
【十进制 255 的八进制是多少?】377。
【为什么程序员喜欢十六进制?】一位十六进制正好对应 4 个二进制位,两个十六进制位正好是一个字节。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。