2014-09-02 209 views
-6

我發現在Java類此整數變量聲明:這是什麼意思(計算中的<< and > >>)?

INT I7 =((0x1F的& arrayOfByte [I] [4])< < 9)+((0xFF的& arrayOfByte [I] [5]) (0xFF & arrayOfByte [i] [6])>>> 7);

但是箭頭(>>>和< <)意味着什麼?

親切的問候, 巴斯蒂安

UPDATE: 母豬它們位移操作符,謝謝! 發現這個很好的解釋視頻:https://www.youtube.com/watch?v=1qa0zvcdHXI

+5

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html – VM4 2014-09-02 20:33:39

+0

>> bitshift right,<< bitshift left,>>> looping bitshift right,<<< looping bitshift left(while循環意味着該位再次進入32位整數的另一側) – TheWhiteLlama 2014-09-02 20:34:32

+0

看看誰沒有做他的研究作業。 – Gumbo 2014-09-02 20:37:52

回答

3

在這篇文章中,讓我們假設數字是一個十六進制數字,只是爲了簡單。

「>>」是移位運算符。例如:

8 >> 1 == 8/2 == 4; 

其中在二進制相當於

b1000 >> 1 == b0100; 

添加第三個「>」到操作者將0到現在最左邊的插槽,而不是做符號擴展,以確定它的值。

-1 >> 1 = b1111 
-1 >>> 1 = b0111 

這對像位掩碼這樣的事情更加有用,其中強制新值爲0很方便。並且只適用於右移,不存在運營商< < <運營商。

相關問題