相关疑难解决方法(0)

python中两个数字的补码

我编写的代码将包含所有16位长的负数和正数,MSB是符号,也就是二进制补码.这意味着我可以拥有的最小数字是-32768,它是1000 0000 0000 0000二进制补码形式.我可以有最大数量是327670111 1111 1111 1111.

我遇到的问题是Python是用相同的二进制记数法表示负数为正数只是把一个减号出前即-16384显示为-0100 0000 0000 0000我所要显示的数字,如-163841100 0000 0000 0000.

我不太清楚这是如何编码的.这是我的代码.基本上,如果数字在180到359之间,那么它将是负数.我需要将其显示为两个恭维值.我没有关于如何显示它的任何代码,因为我真的不知道该怎么做.

def calculatebearingActive(i):

    numTracks = trackQty_Active
    bearing = (((i)*360.0)/numTracks)
    if 0< bearing <=179:
        FC = (bearing/360.0)
        FC_scaled = FC/(2**(-16))
        return int(FC_scaled)

    elif 180<= bearing <=359:
        FC = -1*(360-bearing)/(360.0)
        FC_scaled = FC/(2**(-16))
        return int(FC_scaled)

    elif bearing ==360:
        FC = 0
        return FC
Run Code Online (Sandbox Code Playgroud)

python twos-complement

11
推荐指数
1
解决办法
1万
查看次数

以二进制补码表示格式化负整数

我想用二进制补码表示来表示一个负整数.使用标准的Python位表示实用程序并没有多大帮助:

>>> bin(-5)
'-0b101'
>>> format(-5, 'b')
'-101'
Run Code Online (Sandbox Code Playgroud)

-5二进制补码表示为1011.我该怎么做呢?

python bit-manipulation

6
推荐指数
1
解决办法
3193
查看次数

标签 统计

python ×2

bit-manipulation ×1

twos-complement ×1