二进制转八进制转换器
八进制仍然活跃在 Unix 文件权限(chmod 755)、旧 PDP 时代的手册,以及少数单片机工具链中。这个转换器会从右侧开始每三位一组处理任意二进制字符串,并将每组映射为 0 到 7 的八进制数字。输出是不带前缀的普通八进制数字;如果目标语言要求前导零(0755)或 0o 前缀(0o755),请自行添加。
如何将二进制转为八进制
-
1
输入二进制值
空格会被移除。任意长度都可以;最左侧的分组会自动用前导零补足到三位。
-
2
从右侧开始每三位分组
`111101100` 会变成 `111 101 100`。分组方向很重要:始终从右到左。
-
3
映射每一组三位
000 = 0,001 = 1,010 = 2,一直到 111 = 7。每一组三位正好映射到一个八进制数字。
-
4
读取并复制结果
结果是 `754` 这样的普通八进制数字,不带前缀。如果目标语言需要前导零(`0754`)或 `0o` 前缀(`0o754`),请自行添加。
三位与八进制对照表
| 二进制 | 八进制 |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
示例:Unix 权限
rwxr-xr-x 表示所有者拥有读/写/执行权限,所属组和其他用户拥有读/执行权限。用二进制表示就是 111 101 101,可直接分组为八进制 755,也就是传给 chmod 的确切数字。
八进制什么时候有用
- 文件权限:
chmod 644、umask 022、stat -c %a都用八进制表示。 - 转义序列:C 中的
\100是@的八进制(十进制 64)。 - 旧机器码:PDP-8、PDP-11 和早期 DEC 文档用八进制列出操作码,因为它们的字长是 3 位的倍数。
- 视觉清晰:三位分组比二进制读得更快,又不像十六进制那样引入完整的字母表。
常见坑
- C 中前导零表示八进制:
0755是八进制 755(= 十进制 493),755是十进制 755。粘贴前请检查你所用语言的规则。 - JavaScript 移除了旧式八进制:严格模式会拒绝
0755。请改用0o755。 - 分组方向:如果从左到右分组,任何长度不是 3 的倍数的位序列都会得到错误答案。
常见问题
因为权限标志正好按每个角色(所有者、所属组、其他用户)三项(读、写、执行)分组。每一组三位一对一映射到一个八进制数字,所以 rwxr-xr-x 一步就能读作 755。
这里的输出是不带前缀的普通数字。在代码中使用该值时,请遵循目标语言:C、Perl 和各种 shell 使用前导 0,Python 3、Rust 和 Swift 使用 0o,命令行上的 chmod 不使用前缀。
负数需要有符号位宽(补码),而这个转换器没有位宽选项:它把所有输入都当作无符号处理。要转换负值,请先将其写成固定位宽的补码形式,再转换该形式。
不需要。转换器会把最左侧的分组用前导零补足到三位。1111 会变成 001 111,也就是八进制 17。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
变更日志生成器
根据分类条目生成 Keep a Changelog 风格的 Markdown 部分。将条目粘贴到 Added、Changed、Fixed 和 Removed 下,选择 Markdown 或纯文本,然后复制输出。
cURL 命令生成器
根据 HTTP URL、请求头、认证、JSON、原始数据或表单字段,在浏览器中私密生成适用于 POSIX Shell 或 PowerShell 的 cURL 命令。
此工具还提供其他语言版本
- 2進数から8進数への変換ツール [JA]
- Binär zu Oktal Konverter [DE]
- Konverter Biner ke Oktal [ID]
- 2진수 8진수 변환기 [KO]
- Convertidor de Binario a Octal [ES]
- Binär till oktal-konverterare [SV]
- Bộ chuyển đổi nhị phân sang bát phân [VI]
- İkiliden Sekizliye Dönüştürücü [TR]
- Binair naar octaal-converter [NL]
- ตัวแปลงเลขฐานสองเป็นฐานแปด [TH]
- Binary to Octal Converter [EN]
- Convertisseur binaire en octal [FR]
- Conversor de Binário para Octal [PT]
- محول الثنائي إلى الثماني [AR]
- Konwerter binarnego na ósemkowy [PL]
- Convertitore da binario a ottale [IT]
- Конвертер двоичного в восьмеричное [RU]