八进制在线转换器,与二进制、十进制实时互转
输入八进制数立刻得到二进制、十进制、十六进制结果;反向换算同样支持。附带 Linux 文件权限实例讲解,运维和开发都实用。
八进制 ↔ 其他进制换算器
默认预选「八进制 → 十进制」,可自由切换任意进制组合;输入自动忽略 0o 前缀。
八进制是什么:满八进一的三比特视角
位权展开与换算方法
八进制(Octal)以 8 为基数,只使用 0 到 7 八个符号,「满八进一」。从右往左各位的位权是 1、8、64、512……把每位数字乘以对应位权再求和,就得到十进制值。例如八进制 175:
175 = 1×64 + 7×8 + 5×1
= 64 + 56 + 5 = 125(十进制)
十进制转八进制用「除 8 取余、余数倒排」,与转二进制的思路完全一致,只是除数换成 8。例如 125 ÷ 8 = 15 余 5,15 ÷ 8 = 1 余 7,1 ÷ 8 = 0 余 1,倒排得 175。
与二进制的关系:3 位一组
八进制的价值来自它与二进制的天然对应:2³ = 8,每 3 个二进制位恰好压缩成 1 个八进制字符。从右往左每 3 位分组、高位补零,逐组替换:
二进制 1111101 → 分组 001 | 111 | 101
= 1 | 7 | 5 → 八进制 175
反向同理:每个八进制位展开成 3 位二进制即可。在十六进制普及之前,八进制曾是 PDP 系列小型机时代的主流缩写方式——因为那些机器的字长是 12 位、24 位、36 位,都能被 3 整除;后来 8 位、16 位、32 位计算机成为主流(能被 4 整除),十六进制才逐渐取代了它的位置。
实战例子:读懂 Linux 文件权限 755
Linux 与 macOS 中用 chmod 755 file 设置权限时,755 就是三个八进制位,每个八进制位展开成 3 个二进制位,分别对应读(r=4)、写(w=2)、执行(x=1)三种能力:
7 = 111 → rwx(所有者:读、写、执行)
5 = 101 → r-x(所属组:读、执行)
5 = 101 → r-x(其他用户:读、执行)
同理,777 表示所有人拥有全部权限(不建议对敏感文件使用),644 表示所有者可读写、其他人只读,这是网站部署里最常见的两组权限值。看到权限数字时心算一遍八进制转二进制,每个比特的含义一目了然。
编程语言中的八进制字面量
C、C++、Java 中以 0 开头的数字是八进制(0755 即十进制 493);Python 3 和 JavaScript 的严格写法是 0o755。一个经典陷阱是:把十进制 10 误写成 010,程序会把它当作八进制的 8 处理——排查这类bug 时,先用转换器确认两种写法各自的十进制值。
八进制 0 - 20 对照表
| 八进制 | 二进制 | 十进制 | 十六进制 |
|---|---|---|---|
| 0 | 000 | 0 | 0 |
| 1 | 001 | 1 | 1 |
| 2 | 010 | 2 | 2 |
| 3 | 011 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 10 | 001000 | 8 | 8 |
| 11 | 001001 | 9 | 9 |
| 12 | 001010 | 10 | A |
| 13 | 001011 | 11 | B |
| 14 | 001100 | 12 | C |
| 15 | 001101 | 13 | D |
| 16 | 001110 | 14 | E |
| 17 | 001111 | 15 | F |
| 20 | 010000 | 16 | 10 |
| 21 | 010001 | 17 | 11 |
| 22 | 010010 | 18 | 12 |
| 23 | 010011 | 19 | 13 |
| 24 | 010100 | 20 | 14 |
八进制转换常见问题
八进制数 17 等于十进制多少?
17 = 1×8 + 7 = 15。注意八进制里不出现数字 8 和 9,「满八进一」意味着 10 就已经是十进制的 8 了。
八进制为什么不常用 8 和 9?
八进制的基数是 8,只需要 0-7 共八个不同符号。数字 8 和 9 不在其符号表内,出现即非法——比如 0o18 不是合法八进制数,转换器会直接提示错误。
Linux 权限 755 是什么意思?
755 是三个八进制位,按 rwx(读=4、写=2、执行=1)展开:7 = 4+2+1 即所有者可读写执行,5 = 4+1 即所属组和其他用户可读、可执行但不可写。这是让脚本可以运行、同时避免他人篡改的常用权限。
八进制和十六进制应该学哪个?
以十六进制为主、八进制为辅。现代计算机字长是 8 的倍数,与 4 位一组的十六进制天然契合,内存地址、颜色码、哈希值全是十六进制;八进制主要保留在文件权限(chmod)、少量 C 语言遗留代码和嵌入式场景中,理解「3 位一组」的思想即可。