首页  > 教育解读  > 二进制怎么逆转换

二进制怎么逆转换

2025-05-06 09:03:57
从未停步
从未停步已认证

从未停步为您分享以下优质知识

二进制逆转换通常指将二进制数据转换为其他进制形式,以下是常见转换方法及示例:

一、二进制转十进制

按权展开求和法

将二进制数按权展开后求和。对于二进制数 $b_n b_{n-1} dots b_1 b_0$,其十进制值为:

$$sum_{i=0}^n b_i cdot 2^i$$

例如:

$$1011_2 = 1 cdot 2^3 + 0 cdot 2^2 + 1 cdot 2^1 + 1 cdot 2^0 = 8 + 0 + 2 + 1 = 11_{10}$$

Python代码示例

使用内置函数 `int()` 或位操作实现:

```python

使用int函数

binary_str = '1011'

integer_value = int(binary_str, 2)

print(integer_value) 输出: 11

使用位操作

def binary_to_int(binary_str):

binary_str = binary_str[::-1]

integer_value = 0

for i in range(len(binary_str)):

bit = int(binary_str[i])

integer_value += bit * (2 i)

return integer_value

print(binary_to_int('1011')) 输出: 11

```

二、二进制转八进制

分组转换法

将二进制数每3位一组,不足时补零,然后将每组转换为对应的八进制数。例如:

$$11010011_2 rightarrow 110 100 110_2 rightarrow 6 4 6_{8}$$

结果为 $646_{8}$。

Python代码示例

使用内置函数 `oct()` 实现:

```python

binary_str = '11010011'

octal_value = oct(int(binary_str, 2))[2:] 去掉前缀'0o'

print(octal_value) 输出: 646

```

三、二进制转十六进制

分组转换法

将二进制数每4位一组,不足时补零,然后将每组转换为对应的十六进制数。例如:

$$11110000_2 rightarrow 1111 0000_2 rightarrow F 0_{16}$$

结果为 $F0_{16}$。

Python代码示例

使用内置函数 `hex()` 实现:

```python

binary_str = '11110000'

hexadecimal_value = hex(int(binary_str, 2))[2:] 去掉前缀'0x'

print(hexadecimal_value) 输出: F0

```

四、其他进制转二进制

十进制转二进制

- 整数部分:

用"除2取余,逆序排列"法。例如:

$$23_{10} rightarrow 10111_2$$

- 小数部分:用"乘2取整,顺序排列"法。例如:

$$0.625 rightarrow 0.101_2$$

- Python代码示例:

```python

整数转二进制

decimal = 23

binary = bin(decimal)

小数转二进制

decimal_fraction = 0.625

binary_fraction = bin(decimal_fraction)

print(binary) 输出: 10111

print(binary_fraction) 输出: 0.101

```

八进制/十六进制转二进制

- 八进制转二进制:

每1位八进制对应3位二进制,不足补零。例如:

$$7_{8} rightarrow 111_2$$

- 十六进制转二进制:每1位十六进制对应4位二进制。例如:

$$A_{16}