如何获得正数的负二进制数
Posted
技术标签:
【中文标题】如何获得正数的负二进制数【英文标题】:How to get the negative binary number of a positive number 【发布时间】:2020-09-09 21:17:40 【问题描述】:给定一个正数,我试图打印一个表示它的负二进制数的字符串。
我正在做这样的事情:
def NegativeBinary(number):
number_below = number - 1
bin_number_below = "0:b".format(number_below)
# how can I invert this bin_number_below afterwards,
# so that I return the negative of the number I got as an argument
return bin_negative_number
希望我减去给定的数字,因为它是负二进制数,基本上是数字 1 的二进制表示,零和一倒置。
前:
num = NegativeBinary(5)
print(num)
**** output ****
In[1]: '1011'
我知道这样一个事实,因为我正在使用字符串,这可能有点“棘手”,但是如果有人给我一个关于如何做到这一点的想法,我将非常感激。
【问题讨论】:
您是否假设两个补码以及表示 int 所需的最小字节数? 是的,我想做的是在这种情况下用最少的位数表示负数。有什么想法吗? @Mark 解决方案应该可以工作 【参考方案1】:你可以做number_below = -number
,它应该做你想做的事。如果你减去一个,那么你只是减去一个。
【讨论】:
嗨,马克!我已经尝试过了,但我得到的结果只是前面带有“-”的常规二进制数。例如x = "0:b".format(-5) // x = '-101'
,这不是我想要的以上是关于如何获得正数的负二进制数的主要内容,如果未能解决你的问题,请参考以下文章
C#Winform基础 八进制数转换为无符号二进制数(整数,正数)
C#Winform基础 十六进制数转换为十进制数(整数,正数)
C#Winform基础 八进制数转换为十进制数(无符号,整数,正数)