【发布时间】:2012-02-09 02:13:32
【问题描述】:
我仍在为使用 Ruby 的位运算符而苦苦挣扎。
获取值 11100(以 10 为底的 28)(来自比特流),我希望将其视为 -4,即 5 位有符号整数。
你会怎么做?
我知道通用伪算法说: -X = "/X +1" 即:要获得 X 的反面,首先翻转 X 的位,然后递增 1。但是我在这里卡住了!
【问题讨论】:
标签: ruby bit-manipulation bitwise-operators
我仍在为使用 Ruby 的位运算符而苦苦挣扎。
获取值 11100(以 10 为底的 28)(来自比特流),我希望将其视为 -4,即 5 位有符号整数。
你会怎么做?
我知道通用伪算法说: -X = "/X +1" 即:要获得 X 的反面,首先翻转 X 的位,然后递增 1。但是我在这里卡住了!
【问题讨论】:
标签: ruby bit-manipulation bitwise-operators
如果最左边的位是 1,那么它是负数。
所以用你的 28 减去 32 (2^5) 得到 -4。
但 -2 将是 11110
【讨论】: