2012-01-23 130 views
1

我仍然在努力使用Ruby的按位运算符。5位有符号整数?

得到一个值11100(基数为10的28)(来自一个比特流),我希望看到它为-4,即5位有符号整数。

你将如何进行?

我知道通用的伪算法说: -X =“/ X + 1”即:获得与X相反的位置,首先翻转X的位,然后递增1。

+0

11100应该是-4,否? –

回答

2

如果最左边的位是1,那么它是负数。

所以把你的28和减去32(2^5)得到-4。

但-2会是11110