OCT · 满八进一

八进制在线转换器,与二进制、十进制实时互转

输入八进制数立刻得到二进制、十进制、十六进制结果;反向换算同样支持。附带 Linux 文件权限实例讲解,运维和开发都实用。

八进制 ↔ 其他进制换算器

默认预选「八进制 → 十进制」,可自由切换任意进制组合;输入自动忽略 0o 前缀。

转换结果会显示在这里

OCTAL 101

八进制是什么:满八进一的三比特视角

位权展开与换算方法

八进制(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 时,先用转换器确认两种写法各自的十进制值。

CHEAT SHEET

八进制 0 - 20 对照表

八进制二进制十进制十六进制
000000
100111
201022
301133
410044
510155
611066
711177
1000100088
1100100199
1200101010A
1300101111B
1400110012C
1500110113D
1600111014E
1700111115F
200100001610
210100011711
220100101812
230100111913
240101002014
FAQ

八进制转换常见问题

八进制数 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 位一组」的思想即可。

继续换算其他进制

八进制换算完成后,试试与其关系最密切的二进制转换页。

去二进制转换 阅读转换百科