编写函数,实现十进制数转化为二进制【tips:divmod()函数可用:divmod(a,b)的返回值为(a//b,a%b)】
时间: 2024-01-22 21:18:42 浏览: 78
可以使用循环,每次将十进制数除以2并取余数,直到商为0为止,将所有余数拼接起来即可得到二进制数。
下面是一个示例函数的代码:
```python
def decimal_to_binary(decimal):
binary = ''
while decimal > 0:
decimal, remainder = divmod(decimal, 2)
binary = str(remainder) + binary
return binary
```
示例用法:
```python
>>> decimal_to_binary(10)
'1010'
>>> decimal_to_binary(42)
'101010'
```
相关问题
编写函数实现十进制整数转换成其他进制。并在主程序中测试该函数。python
Python编程语言具有丰富的内置函数和库,可以方便地实现各种功能。要编写一个函数实现十进制整数转换为其他进制,可以利用Python的内置函数 divmod() 和 reverse() 来实现。具体步骤如下:
1. 定义一个函数 decimal_to_base(),接受两个参数,一个是要转换的十进制整数 decimal_num,另一个是目标进制 base_num。
2. 在函数内部,定义一个空列表 result,用于存储转换后的数字。
3. 判断 decimal_num 是否为0,如果是则直接返回 '0'。
4. 如果 decimal_num 不为0,则进行循环,每次都将余数添加到 result 列表中,然后将 decimal_num 除以 base_num,直到 decimal_num 变为0为止。
5. 将 result 列表中的元素倒序排列得到最终结果,再将其转换为字符串返回。
下面是函数的Python代码:
def decimal_to_base(decimal_num, base_num):
result = []
if decimal_num == 0:
return '0'
while decimal_num:
decimal_num, remainder = divmod(decimal_num, base_num)
result.append(str(remainder))
result.reverse()
return ''.join(result)
在主程序中可以调用这个函数,测试不同的十进制数转换成不同进制的结果。例如,输入 decimal_to_base(42, 2),输出结果为 '101010',即42的二进制表示。输入 decimal_to_base(255, 16),输出结果为 'FF',即255的十六进制表示。
编写一个将十进制数转换成二进制数的函数
使用Python代码实现这个函数:
def ten_to_two(num):
"""
将十进制数转换成二进制数
:param num: 十进制数
:return: 二进制数
"""
binary = []
while num:
num, remain = divmod(num, 2)
binary.insert(0, remain)
return ''.join([str(i) for i in binary])
def two_to_ten(num):
"""
将二进制数转换成十进制数
:param num: 二进制数
:return: 十进制数
"""
decimal = 0
for i, n in enumerate(num[::-1]):
decimal += int(n) * 2**i
return decimal
def ten_to_two_to_ten(num):
"""
将十进制数转换成二进制数,再将二进制数转换成十进制数
:param num: 十进制数
:return: 转换过后的十进制数
"""
binary = ten_to_two(num)
decimal = two_to_ten(binary)
return decimal
阅读全文