作者Venividivici (不想後悔)
看板C_and_CPP
標題[問題] 位元運算一問
時間Mon Jan 10 00:55:06 2011
請問一下 C 或 C++ 有類似等價於 Java ">>>" 及 "<<<" 的用法嗎?
查了一下網路上的資訊是說 >>> 與 >> 的差別在於如果最左邊是 1, >>> 會保留
最左邊的 1 , 而 >> 則是直接補 0;
所以如果在 Java 中的寫法是 a = -1; b = a >>> 1;
在 C++ 中的寫法會等價於 a = -1; b = ( a >> 1 ) & ( 1000 0000 0000 0000 );
不知道這樣是正確的嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.100.125
→ uranusjr:是 or (|) 才對, 而且先決條件是 a 和 b 為 16 bit 且 -1 01/10 00:57
→ uranusjr:的編譯器實作中 LSB 為 1 01/10 00:58
→ Venividivici:不好意思,我還是不太懂..可以舉個例子嗎 @_@? 01/10 01:00
推 firejox:應該指的是右旋吧,視最低位決定最高位是否補1 01/16 21:01