进制转换是计算机科学中的一个常见问题,可以通过多种方法实现。以下是几种常见的进制转换方法:
十进制转二进制
除2取余法
将十进制数不断除以2,记录每次的余数,直到商为0。
将记录的余数倒序排列,即为二进制表示。
短除法
将十进制数除以目标进制数,记录每次的余数。
继续用商除以目标进制数,直到商为0。
倒序输出记录的余数,即为转换后的二进制数。
二进制转十进制
按权展开法
从右往左,每位数字乘以其对应的权重(2的幂次方),然后求和。
八进制转二进制
每一位八进制转三位二进制
将每一位八进制数转换为对应的三位二进制数,不足三位的前面补0。
短除法
将八进制数不断除以8,记录每次的余数。
继续用商除以8,直到商为0。
倒序输出记录的余数,即为转换后的二进制数。
十六进制转二进制
每一位十六进制转四位二进制
将每一位十六进制数转换为对应的四位二进制数,不足四位的前面补0。
短除法
将十六进制数不断除以16,记录每次的余数。
继续用商除以16,直到商为0。
倒序输出记录的余数,即为转换后的二进制数。
二进制转八进制
每三位二进制转一位八进制
将每三位二进制数转换为一位八进制数,不足三位的前面补0。
短除法
将二进制数不断除以8,记录每次的余数。
继续用商除以8,直到商为0。
倒序输出记录的余数,即为转换后的八进制数。
二进制转十六进制
每四位二进制转一位十六进制
将每四位二进制数转换为一位十六进制数,不足四位的前面补0。
短除法
将二进制数不断除以16,记录每次的余数。
继续用商除以16,直到商为0。
倒序输出记录的余数,即为转换后的十六进制数。
示例代码
```python
def decimal_to_binary(decimal_num):
result = ""
while decimal_num > 0:
remainder = decimal_num % 2
result = str(remainder) + result
decimal_num //= 2
return result
示例
num = 5
binary_result = decimal_to_binary(num)
print(f"十进制数 {num} 转换为二进制是: {binary_result}")
```
这个代码通过不断除以2并记录余数,最后将余数倒序排列,得到二进制表示。类似的方法可以应用于其他进制之间的转换。