Sar*_*rah 2 java vb.net bit-manipulation bit
任何人都可以解释下面发生的事情;以下位移如何工作?
Dim pBuffer(11) As Int
pBuffer(0)=4
'Firmware Version'
pBuffer(1)=Bit.ShiftRight(Bit.And(firmware_version, 0xFF00),8)
pBuffer(2)=Bit.And(firmware_version, 0xFF)
Run Code Online (Sandbox Code Playgroud)
考虑firmware_version = 0001
什么是相同的Java代码?我可以在java中使用Bit.ShiftRight吗?我检查了Java类,并没有完全理解java中等效的'Bit.ShiftRight'操作是什么?
编辑:你能解释一下这里究竟发生了什么吗?
pBuffer(1)=Bit.ShiftRight(Bit.And(firmware_version, 0xFF00),8)
Run Code Online (Sandbox Code Playgroud)
AND如何执行和位移?它是什么表演的?firmware_version是0xFF00还是先移位?你能解释一下吗?
在java中,您可以分别使用运算符>>和>>>有符号和零填充右移.
按位,用Java实现&.
请参阅http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
VB声明
pBuffer(1)=Bit.ShiftRight(Bit.And(firmware_version, 0xFF00),8)
Run Code Online (Sandbox Code Playgroud)
因此可以通过Java实现
pBuffer[1]= (firmware_version & 0xFF00) // Bit.And
>> 8 // shift right 8 bits
Run Code Online (Sandbox Code Playgroud)