十六进制,八进制,十进制,二进制之间的相互转换方法和例子
时间: 2024-06-13 18:08:39 浏览: 167
以下是十六进制、八进制、十进制、二进制之间的相互转换方法和例子:
1. 十六进制转换为十进制
- 方法:将十六进制数每一位分别乘以16的幂次方,幂次方从0开始递增,最后将结果相加即可。
- 例子:将十六进制数0x3A7转换为十进制数。
```python
hex_num = 0x3A7
dec_num = 0
for i, digit in enumerate(reversed(str(hex_num))):
dec_num += int(digit, 16) * (16 ** i)
print(dec_num) # 输出:935
```
2. 十进制转换为十六进制
- 方法:将十进制数不断除以16,直到商为0,将每一步的余数倒序排列即可。
- 例子:将十进制数935转换为十六进制数。
```python
dec_num = 935
hex_num = ''
while dec_num > 0:
hex_digit = str(hex(dec_num % 16))[2:].upper()
hex_num = hex_digit + hex_num
dec_num //= 16
print('0x' + hex_num) # 输出:0x3A7
```
3. 十进制转换为八进制
- 方法:将十进制数不断除以8,直到商为0,将每一步的余数倒序排列即可。
- 例子:将十进制数935转换为八进制数。
```python
dec_num = 935
oct_num = ''
while dec_num > 0:
oct_digit = str(oct(dec_num % 8))[2:]
oct_num = oct_digit + oct_num
dec_num //= 8
print('0o' + oct_num) # 输出:0o1657
```
4. 八进制转换为十进制
- 方法:将八进制数每一位分别乘以8的幂次方,幂次方从0开始递增,最后将结果相加即可。
- 例子:将八进制数0o1657转换为十进制数。
```python
oct_num = 0o1657
dec_num = 0
for i, digit in enumerate(reversed(str(oct_num))):
dec_num += int(digit) * (8 ** i)
print(dec_num) # 输出:935
```
5. 十进制转换为二进制
- 方法:将十进制数不断除以2,直到商为0,将每一步的余数倒序排列即可。
- 例子:将十进制数935转换为二进制数。
```python
dec_num = 935
bin_num = ''
while dec_num > 0:
bin_digit = str(dec_num % 2)
bin_num = bin_digit + bin_num
dec_num //= 2
print('0b' + bin_num) # 输出:0b1110100111
```
6. 二进制转换为十进制
- 方法:将二进制数每一位分别乘以2的幂次方,幂次方从0开始递增,最后将结果相加即可。
- 例子:将二进制数0b1110100111转换为十进制数。
```python
bin_num = 0b1110100111
dec_num = 0
for i, digit in enumerate(reversed(str(bin_num))):
dec_num += int(digit) * (2 ** i)
print(dec_num) # 输出:935
```
阅读全文