【发布时间】:2018-08-08 07:17:59
【问题描述】:
我有一个(短)数据数组,它向左移动了 4,它也是一个有符号数。我需要将它绘制在零附近。
例如:如果数组中的数字是0b0000000011111111,我将它左移4,我将得到0b000000001111。没事。
例如:如果数组中的数字是0b100011111111,我将它向左移动4,我将得到0b000010001111。很好,但现在不是负数了。
有人可以帮忙吗?
【问题讨论】:
-
您的问题不清楚。在这两种情况下,您都说“向左移动”,但它看起来像是向 right 移动(向最低有效位)。你的意思是“向右移动”?另外,问题本身也不清楚。你想移动负数并仍然得到一个负数吗?另外,你如何进行轮班?数字的数据格式是什么--16 位整数?它属于什么类型的变量?
-
我能想到的唯一解决方案是在转换之前将它们转换为正数,然后再转换为负数。 This wikipedia page 很好地解释了两个人的恭维是如何工作的。
-
Python 在其整数中不使用二进制补码,
0b10001111111 == 2303。 -
@jonrsharpe 仅供参考,您最后缺少
1(0b100011111111)。