python进制转换编程题
时间: 2023-11-17 11:03:35 浏览: 322
Python进制转换编程题可以通过定义函数来实现。下面是一个将十进制数转换为二进制、八进制、十六进制的示例代码:
```python
def convert(num, base):
"""
将十进制数转换为二进制、八进制、十六进制
>>> convert(13, 2)
'1101'
>>> convert(23, 16)
'17'
>>> convert(23, 8)
'27'
>>> convert(30, 16)
'1E'
"""
codes = "0123456789ABCDEF"
s = ""
while num != 0:
r = num % base
s = codes[r] + s
num //= base
return s if s != "" else "0"
if __name__ == "__main__":
import doctest
doctest.testmod(verbose=True)
```
该函数接受两个参数,分别为需要转换的十进制数和目标进制数。在函数内部,使用了一个while循环,不断地将十进制数除以目标进制数,得到余数,并将余数对应的字符添加到结果字符串中。最后返回结果字符串即可。
相关问题:
相关问题
帮我出去10道python中关于进制相互转换的编程题
好的,以下是 10 道 Python 编程题,涉及进制相互转换:
1. 将二进制字符串转换为十进制数:
```python
def bin2dec(num):
res = 0
for i in range(len(num)):
res += int(num[i]) * (2 ** (len(num) - 1 - i))
return res
# 示例
print(bin2dec("1010")) # 10
```
2. 将字符串表示的八进制数转换为十进制数:
```python
def oct2dec(num):
res = 0
for i in range(len(num)):
res += int(num[i]) * (8 ** (len(num) - 1 - i))
return res
# 示例
print(oct2dec("12")) # 10
```
3. 将字符串表示的十六进制数转换为十进制数:
```python
def hex2dec(num):
res = 0
digits = "0123456789ABCDEF"
for i in range(len(num)):
res += digits.index(num[i]) * (16 ** (len(num) - 1 - i))
return res
# 示例
print(hex2dec("A")) # 10
```
4. 将十进制数转换为二进制字符串:
```python
def dec2bin(num):
res = ""
while num > 0:
res = str(num % 2) + res
num //= 2
return res
# 示例
print(dec2bin(10)) # 1010
```
5. 将十进制数转换为八进制字符串:
```python
def dec2oct(num):
res = ""
while num > 0:
res = str(num % 8) + res
num //= 8
return res
# 示例
print(dec2oct(10)) # 12
```
6. 将十进制数转换为十六进制字符串:
```python
def dec2hex(num):
res = ""
digits = "0123456789ABCDEF"
while num > 0:
res = digits[num % 16] + res
num //= 16
return res
# 示例
print(dec2hex(10)) # A
```
7. 将八进制字符串转换为二进制字符串:
```python
def oct2bin(num):
res = ""
for i in range(len(num)):
res += dec2bin(int(num[i]))
return res
# 示例
print(oct2bin("12")) # 1010
```
8. 将八进制字符串转换为十六进制字符串:
```python
def oct2hex(num):
res = ""
for i in range(len(num)):
res += dec2hex(int(num[i]))
return res
# 示例
print(oct2hex("12")) # A
```
9. 将十六进制字符串转换为二进制字符串:
```python
def hex2bin(num):
res = ""
for i in range(len(num)):
res += dec2bin(int(digits.index(num[i])))
return res
# 示例
print(hex2bin("A")) # 1010
```
10. 将十六进制字符串转换为八进制字符串:
```python
def hex2oct(num):
res = ""
for i in range(len(num)):
res += dec2oct(int(digits.index(num[i])))
return res
# 示例
print(hex2oct("A")) # 12
```
希望这些编程题能帮助你更好地理解进制相互转换的实现。
编程题3:输入十进制整数和欲转换的进制数r,将十进制数转换为r进制。注意 16进制用0-9,A-F表示。用Python
要将十进制整数转换为指定进制的数,可以使用Python内置的函数`hex()`、`bin()`和`oct()`来分别转换为十六进制、二进制和八进制。如果需要转换为其他进制,可以使用循环和取余运算来实现。
以下是一个示例代码,可以将十进制整数转换为指定进制的数:
```python
def decimal_to_base(n, base):
if base == 10:
return str(n)
elif base == 16:
return hex(n)[2:]
elif base == 2:
return bin(n)[2:]
elif base == 8:
return oct(n)[2:]
else:
result = ""
while n > 0:
remainder = n % base
if remainder < 10:
result = str(remainder) + result
else:
result = chr(ord('A') + remainder - 10) + result
n = n // base
return result
# 测试
decimal_num = int(input("请输入十进制整数:"))
base_num = int(input("请输入欲转换的进制数:"))
result = decimal_to_base(decimal_num, base_num)
print(f"转换结果:{result}")
```
请注意,以上代码中的`decimal_to_base()`函数可以将十进制整数`n`转换为指定进制`base`的数,并返回转换结果。在测试时,用户需要输入十进制整数和欲转换的进制数。
阅读全文