[問題] 位元運算一問

看板C_and_CPP作者 (不想後悔)時間15年前 (2011/01/10 00:55), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
請問一下 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

01/10 00:57, , 1F
是 or (|) 才對, 而且先決條件是 a 和 b 為 16 bit 且 -1
01/10 00:57, 1F

01/10 00:58, , 2F
的編譯器實作中 LSB 為 1
01/10 00:58, 2F

01/10 01:00, , 3F
不好意思,我還是不太懂..可以舉個例子嗎 @_@?
01/10 01:00, 3F

01/16 21:01, , 4F
應該指的是右旋吧,視最低位決定最高位是否補1
01/16 21:01, 4F
文章代碼(AID): #1DAUXiBq (C_and_CPP)
文章代碼(AID): #1DAUXiBq (C_and_CPP)