推 pikachu123:那個是算數右移 I>>31 會變成全部都是1 &7 會是7 12/13 13:26
I is an interger variable.
Which of the following expressions give the correct result of (I/8)?
有問題的為這個選項: (已經把答案背起來很久,突然有點不確定意思XD)
(d) (I + ((I >> 31) &7)) >> 3
我的解讀是:
若為正數,I直接右移3 bits;
若為負數,I >> 31 與7 and 的結果會為000.....001
換言之是 +1 後,右移3 bits。
舉了一些負數的例子去try答案,似乎都正確,
只是我記得負數在 /n 的情況下,
不是應該要 + (n-1)再右移嗎...?
--
Why Not :-P
http://whynot-p.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.49.101