什么是二进制转八进制转换器?
这个工具可以把以二进制(2进制,只用数字 0 和 1 表示)书写的数字,转换成八进制(8进制,使用数字 0–7)。八进制是表示二进制的一种紧凑方式,因为每三位二进制数正好对应一位八进制数。转换器还会同时给出对应的十进制(10进制)数值,方便你核对结果是否正确。
使用方法
在输入框中输入一个二进制数,例如 101110,然后提交。计算器会先校验每个字符是否都是 0 或 1,再返回八进制结果、原始二进制数以及对应的十进制数值。开头的前导零会被自动处理,无需担心。
转换公式解析
由于 \(2^3 = 8\),每三位二进制数恰好编码成一位八进制数。从右往左,把二进制字符串每三位分为一组,如果最左边一组不足三位,就在前面补零。再用
$$d = 4 \cdot b_2 + 2 \cdot b_1 + b_0$$把每一组转换为 0 到 7 之间的数值,最后将这些数字依次拼接起来,就得到八进制数。
实例演算
以 101110 为例。从右往左每三位分组:101 和 110。第一组为 \(4 \cdot 1 + 2 \cdot 0 + 1 \cdot 0 = 5\);第二组为 \(4 \cdot 1 + 2 \cdot 1 + 1 \cdot 0 = 6\)。因此八进制结果为 56。验证一下:其十进制值为 \(32 + 8 + 4 + 2 = 46\)。
二进制转八进制分组转换表
二进制转八进制转换之所以有效,是因为 \(8 = 2^3\)。每个八进制数字恰好对应三个二进制位的一组(三元组)。转换时,从右边开始将二进制数分成3位的组,如果需要,用前导零填充最左边的组,然后用下面的单个八进制数字替换每个三元组。
| 3位二进制(三元组) | 八进制数字 | 十进制值 |
|---|---|---|
| 000 | 0 | 0 |
| 001 | 1 | 1 |
| 010 | 2 | 2 |
| 011 | 3 | 3 |
| 100 | 4 | 4 |
| 101 | 5 | 5 |
| 110 | 6 | 6 |
| 111 | 7 | 7 |
每个三元组的位置值为 \(4,\ 2,\ 1\)(即 \(2^2, 2^1, 2^0\))。例如,\(101_2 = 1\times4 + 0\times2 + 1\times1 = 5\),得到八进制数字 \(5\)。
更多详细示例
示例 1:\(11_2\) → 八进制
从右边分组成3位三元组,左边用零填充:\(11 \to 011\)。
$$011_2 = 0\times4 + 1\times2 + 1\times1 = 3$$
所以 \(11_2 = \)3\(_8\)。其十进制值也是 3。
示例 2:\(11010110_2\) → 八进制
从右边分成三元组;最左边的组用零填充:\(11\,010\,110 \to 011\,010\,110\)。
| 三元组 | 011 | 010 | 110 |
|---|---|---|---|
| 八进制数字 | 3 | 2 | 6 |
从左到右读取数字得到 \(11010110_2 = \)326\(_8\)。作为十进制值,这个二进制数等于 214。
示例 3:一个更长的字符串 \(101110011001_2\)
这是 12 位,已经是 3 的倍数,所以不需要填充。从右边分组:
| 三元组 | 101 | 110 | 011 | 001 |
|---|---|---|---|---|
| 八进制数字 | 5 | 6 | 3 | 1 |
常见问题
为什么要每三位一组? 因为 \(8 = 2^3\),每一位八进制数正好对应三位二进制数,所以这种换算是一种干净、无损的重新分组。
如果位数不是 3 的倍数怎么办? 我们会在左侧补零,这并不会改变数值大小。
可以输入小数点吗? 本转换器只处理二进制整数。请在转换前去掉任何小数部分。