python编写一个函数,将十进制整数n转换为二进制的字符串,用列表保存中间余数
时间: 2024-05-13 10:20:15 浏览: 12
好的,我明白您的要求了。以下是 Python 代码实现:
```
def decimal_to_binary(n):
"""
将十进制整数 n 转换为二进制的字符串,用列表保存中间余数
"""
binary_list = []
while n > 0:
binary_list.append(n % 2)
n //= 2
binary_list.reverse() # 将列表翻转,得到正确的二进制字符串
binary_str = ''.join([str(i) for i in binary_list]) # 将列表元素转换为字符串,并拼接
return binary_str
```
使用方法:
```
n = 1234
binary_str = decimal_to_binary(n)
print(binary_str) # 输出:10011010010
```
相关问题
python输入一个十进制整数,转换成二进制数(不可以用内置函数)
可以使用除2取余法将十进制整数转换成二进制数,具体步骤如下:
1. 定义一个空字符串 `binary_str` 用于存储二进制数
2. 将输入的十进制整数除以2,得到商和余数
3. 将余数转换成字符串并添加到 `binary_str` 的开头
4. 将商作为新的十进制整数,重复执行步骤2-3,直到商为0
5. 返回 `binary_str` 字符串作为结果
以下是代码实现:
```python
decimal_num = int(input("请输入一个十进制整数:"))
binary_str = ""
while decimal_num > 0:
quotient, remainder = divmod(decimal_num, 2)
binary_str = str(remainder) + binary_str
decimal_num = quotient
print("转换成的二进制数为:", binary_str)
```
运行代码后,输入一个十进制整数,即可输出对应的二进制数。
python编一函数TranDec,功能是将一个十进制整数 m 转换成二至十六之间的 r 进制数字字符串。
好的,以下是实现 TranDec 函数的 Python 代码:
```python
def TranDec(m, r):
if not isinstance(m, int) or not isinstance(r, int):
raise TypeError("m and r must be integers.")
if r < 2 or r > 16:
raise ValueError("r must be between 2 and 16.")
if m == 0:
return "0"
digits = "0123456789ABCDEF"
result = ""
if m < 0:
result += "-"
m = -m
while m > 0:
remainder = m % r
result = digits[remainder] + result
m //= r
return result
```
函数的参数是一个十进制整数 `m` 和一个进制数 `r`,返回值是一个字符串,表示 `m` 在 `r` 进制下的表示。如果 `m` 是负数,则返回的字符串前面带有负号。如果 `r` 不在 2 到 16 的范围内,则会抛出一个 `ValueError` 异常。如果 `m` 或 `r` 不是整数,则会抛出一个 `TypeError` 异常。
函数首先检查参数的类型和范围,然后根据 `m` 和 `r` 的值计算出相应的 r 进制数字字符串。具体来说,对于每一次迭代,函数都计算出 `m` 除以 `r` 的余数和商,然后在 `digits` 字符串中查找相应的数字字符,将其添加到结果字符串的开头。最后,函数返回结果字符串。