用python编写进制转换
时间: 2024-09-26 09:15:32 浏览: 25
在Python中,可以很容易地编写函数来进行进制转换。以下是两个常见操作的例子:从十进制转到其他进制(如二进制、八进制或十六进制),以及从其他进制转回十进制。
1. **将十进制转换为其他进制** (例如,二进制):
```python
def convert_decimal_to_other_base(decimal_value, base=2):
return format(decimal_value, f'{base}b') # 'b' 表示二进制
decimal_num = 42
binary_num = convert_decimal_to_other_base(decimal_num)
print(f"{decimal_num} in binary is {binary_num}")
```
2. **将其他进制转换为十进制** (假设输入已经是一个字符串形式的非十进制数):
```python
def convert_other_base_to_decimal(binary_string):
return int(binary_string, 2) # 第二个参数指定基数,这里是2表示二进制
binary_string = '101010'
decimal_num = convert_other_base_to_decimal(binary_string)
print(f"{binary_string} in decimal is {decimal_num}")
```
相关问题
请用python编写进制相互转换的具体实现代码
以下是将十进制转换为其他进制,以及将其他进制转换为十进制的 Python 代码实现:
```python
# 十进制转其他进制
def dec2base(num, base):
digits = "0123456789ABCDEF"
res = ""
while num > 0:
res = digits[num % base] + res
num //= base
return res
# 其他进制转十进制
def base2dec(num, base):
res = 0
for i in range(len(num)):
res += int(num[i]) * (base ** (len(num) - 1 - i))
return res
```
其中,`dec2base(num, base)` 函数将十进制数 `num` 转换为 `base` 进制数;`base2dec(num, base)` 函数将 `base` 进制数 `num` 转换为十进制数。在代码中,我们使用了一个 `digits` 字符串存储 0 到 15 的数码,其中 A~F 分别表示 10~15。
例如,将十进制数 10 转换为二进制:
```
>>> dec2base(10, 2)
'1010'
```
将十进制数 10 转换为八进制:
```
>>> dec2base(10, 8)
'12'
```
将十进制数 10 转换为十六进制:
```
>>> dec2base(10, 16)
'A'
```
将二进制数 1010 转换为十进制:
```
>>> base2dec('1010', 2)
10
```
将八进制数 12 转换为十进制:
```
>>> base2dec('12', 8)
10
```
将十六进制数 A 转换为十进制:
```
>>> base2dec('A', 16)
10
```
用Python编写一个进制转换程序
好的,以下是一个简单的进制转换程序,可以将十进制转换为其他进制,或将其他进制转换为十进制:
```python
def decimal_to_base(n, base):
"""
将十进制数n转换为base进制数
"""
if n == 0:
return '0'
digits = []
while n > 0:
digits.append(str(n % base))
n //= base
return ''.join(digits[::-1])
def base_to_decimal(s, base):
"""
将base进制数s转换为十进制数
"""
decimal = 0
for digit in s:
decimal = decimal * base + int(digit)
return decimal
# 示例:
print(decimal_to_base(255, 16)) # 输出: "FF"
print(base_to_decimal("1010", 2)) # 输出: 10
```
在上面的示例中,`decimal_to_base`函数将十进制数255转换为十六进制数"FF",`base_to_decimal`函数将二进制数"1010"转换为十进制数10。您可以根据需要修改这些函数来支持其他进制的转换。