进制转换是将一个数值从一种数制表示转换为另一种数制表示的过程。以下是一些常见进制转换的方法:
十进制转二进制
除2取余法
将十进制数除以2,记录余数。
继续将商除以2,记录余数。
重复上述步骤,直到商为0。
将所有余数从下往上排列,即为二进制数。
按权展开法
将十进制数按位权展开,即每一位乘以对应的2的幂次,然后求和。
二进制转十进制
按权展开法
从右往左看,每一位的权重是2的幂次。
将每一位数字乘以对应的权重,然后求和。
八进制转二进制
逐位转换
将每一位八进制数转换为三位二进制数,不足三位的前面补0。
二进制转八进制
分组转换
从低位开始,每三位二进制数为一组,不足三位的在前面补0。
将每组二进制数转换为对应的八进制数,然后依次排列。
十六进制转二进制
逐位转换
将每一位十六进制数转换为四位二进制数,不足四位的在前面补0。
二进制转十六进制
分组转换
从低位开始,每四位二进制数为一组,不足四位的在前面补0。
将每组二进制数转换为对应的十六进制数,然后依次排列。
示例
假设我们要将十进制数18转换为二进制数:
1. 18 ÷ 2 = 9 余 0
2. 9 ÷ 2 = 4 余 1
3. 4 ÷ 2 = 2 余 0
4. 2 ÷ 2 = 1 余 0
5. 1 ÷ 2 = 0 余 1
将余数从下往上排列,得到二进制数10010。
Python代码示例
```python
def decimal_to_binary(decimal):
result = ""
while decimal > 0:
remainder = decimal % 2
result = str(remainder) + result
decimal //= 2
return result
num = 18
binary_str = decimal_to_binary(num)
print(binary_str) 输出: 10010
```
进制转换工具
Python自带了一些进制转换的函数,如`bin()`, `oct()`, `hex()`等,可以方便地进行进制转换:
```python
num = 18
binary_str = bin(num) 输出: 0b10010
octal_str = oct(num) 输出: 0o22
hex_str = hex(num) 输出: 0x12
```
通过这些方法,你可以轻松地在不同的进制之间进行转换。