通过MCP连接 →

输入计算

数学公式

广告

结果

八进制值(8进制)
5631
from binary 101110011001
二进制(2进制) 101110011001
八进制(8进制) 5631
十进制(10进制) 2,969

什么是二进制转八进制转换器?

这个工具可以把以二进制(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 为例。从右往左每三位分组:101110。第一组为 \(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

因此 \(101110011001_2 = \)5631\(_8\)。用十进制确认的相同值是 2969

常见问题

为什么要每三位一组? 因为 \(8 = 2^3\),每一位八进制数正好对应三位二进制数,所以这种换算是一种干净、无损的重新分组。

如果位数不是 3 的倍数怎么办? 我们会在左侧补零,这并不会改变数值大小。

可以输入小数点吗? 本转换器只处理二进制整数。请在转换前去掉任何小数部分。

最后更新: