算法3.20-3.23 案例实现进制转换
时间: 2024-10-25 22:07:38 浏览: 46
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
算法3.20-3.23通常是关于整数的二进制、八进制和十六进制之间的转换案例。这些转换通常涉及到基本的算术操作和位操作,例如位移(左移或右移)、按位与(&)、按位或(|)、按位异或(^)以及比较运算符等。
以下是简单的实现方式概述:
1. **从十进制转其他进制**:
- 对于八进制,可以将十进制数除以8,并取余数,然后记录商和余数,直到商为0。最后按照八进制的顺序(从低位到高位)收集余数。
- 对于十六进制,同样的过程,只是除以的是16,余数可能是0-9(对应十进制的0-9),A-F(对应十六进制的10-15)。
2. **从其他进制转十进制**:
- 从最低位开始,将每个数字乘以其对应的基数(如8对于八进制,16对于十六进制),累加起来就是十进制值。
以下是一个简单的Python代码示例(仅展示十进制转八进制和十六进制的转换):
```python
def decimal_to_octal(decimal_num):
return oct(decimal_num)[2:]
def decimal_to_hexadecimal(decimal_num):
return hex(decimal_num)[2:].upper()
# 示例
decimal_value = 42
octal_value = decimal_to_octal(decimal_value)
hex_value = decimal_to_hexadecimal(decimal_value)
print(f"十进制 {decimal_value} 转换成八进制是 {octal_value}")
print(f"十进制 {decimal_value} 转换成十六进制是 {hex_value}")
```
阅读全文