2012-01-23 132 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