Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的符号大小二进制等价_Python_Binary - Fatal编程技术网

Python中的符号大小二进制等价

Python中的符号大小二进制等价,python,binary,Python,Binary,我正在尝试用python编写一个函数,使用符号大小将十进制数转换为二进制数。向函数传递十进制值和位数。我不想使用bin() 您只得到15位,因为这就是您需要用二进制表示的数字(及其符号)。您的while循环在number为零时立即退出,即使尚未用完所有位。您可能希望将其更改为在范围上使用基于位数的for循环 for _ in range(bits - 1): rem = number % 2 s.push(rem) number = number // 2 您也可以在这

我正在尝试用python编写一个函数,使用符号大小将十进制数转换为二进制数。向函数传递十进制值和位数。我不想使用
bin()

您只得到15位,因为这就是您需要用二进制表示的
数字
(及其符号)。您的
while
循环在
number
为零时立即退出,即使尚未用完所有位。您可能希望将其更改为在
范围
上使用基于位数的
for
循环

for _ in range(bits - 1):
    rem = number % 2
    s.push(rem)
    number = number // 2

您也可以在这里使用
divmod
在一次操作中同时进行除法和模运算。

您只得到15位,因为这就是您需要用二进制表示的
数字(及其符号)的全部内容。您的
while
循环在
number
为零时立即退出,即使尚未用完所有位。您可能希望将其更改为在
范围
上使用基于位数的
for
循环

for _ in range(bits - 1):
    rem = number % 2
    s.push(rem)
    number = number // 2

您也可以在这里使用
divmod
在一次操作中同时进行除法和模运算。

um。。。为什么添加缺少的0是愚蠢的?如果你在指定表示它的位数,你需要添加额外的
0
s,使其与长度匹配,不是吗?会的,但是不应该有更好的方法吗?我无法感谢我的一个想法,但似乎@Blckknght做到了。嗯。。。为什么添加缺少的0是愚蠢的?如果您指定了表示它的位数,您需要添加额外的
0
s以使其与长度匹配,不是吗?会的,但是不应该有更好的方法吗?我无法感谢我头顶上的一位,但似乎@Blckknght做到了。