如何获得正数的负二进制数

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基础 八进制数转换为十进制数(无符号,整数,正数)

如何使用maskRe限制ExtJs Textfield仅接受数字。 (应接受正数,负数,整数和十进制数。)

二进制

sql Server如何编写函数实现把十进制数转换为二进制数?求大神相助!!