我在尝试创建一个函数将十进制正数转换成十六进制字符串时遇到了问题(不打印,只返回十六进制数的字符串)
如果您认为将二进制字符串转换为十六进制字符串更容易的话,那么这个函数应该可以工作到
我已经尝试了一些我在论坛上找到的代码,但是没有一个能正常工作,有些只是在0-15的时间间隔内工作,然后又开始从0开始打印。你知道吗
def hex(n):
r = ''
if n < 16:
if n < 10: return r + str(n)
if n == 10: return r + 'A'
if n == 11: return r + 'B'
if n == 12: return r + 'C'
if n == 13: return r + 'D'
if n == 14: return r + 'E'
if n == 15: return r + 'F'
else:
hex(n//16)
这就是我说的12月15日前有效的代码
代码需要接收一个十进制或二进制数(如果更简单的话),并返回一个数字转换为十六进制的字符串。你知道吗
编辑:我不能使用hex()bin(),dec()。。。你知道吗
可以使用
while
循环而不是递归,并使用dict
将n
除以16的余数(不是商,商用作n
的下一个值)的值映射到相应的hex
数字:在
else
条件下只需要return hex(n//16) + hex(n%16)
:示例:
输出:
例如,当您将数字90转换为十六进制时,您需要5x16+10。 然后在循环的基础上,您需要函数返回
n // 16
的十进制转换,但也要返回除法的其余部分。你知道吗考虑到str可以简单地与sum运算符连接,只需添加
hex(n%16)
相关问题 更多 >
编程相关推荐