我正在尝试在python中编写一个函数,使用sign-magnitude将十进制数转换为python中的二进制数。该函数传递十进制值和位数。我不想使用bin()
函数,因为我试图理解算术。
答案 0 :(得分:2)
你只得到15位,因为你需要用二进制代表number
(和它的符号)。一旦while
为零,您的number
循环就会退出,即使尚未用完所有位。您可能希望将其更改为根据位数在for
上使用range
循环。
for _ in range(bits - 1):
rem = number % 2
s.push(rem)
number = number // 2
您也可以在此使用divmod
在单个操作中同时执行除法和模数。