谁能解释一下下面发生的事情;下面的移位是如何工作的?
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)
考虑 firmware_version = 0001
与此等效的 Java 代码是什么?我可以在 java 中使用 Bit.ShiftRight 吗?我检查了 Java 类,但不太明白什么是 Java 中等效的“Bit.ShiftRight”操作?
编辑:您能解释一下这里到底发生了什么吗?
pBuffer(1)=Bit.ShiftRight(Bit.And(firmware_version, 0xFF00),8)
AND 和移位是如何执行的?它是在什么上执行的? firmware_version AND 0xFF00 还是先移位?你能解释一下吗?
最佳答案
在 java 中,您可以使用运算符 >>
和 >>>
分别进行有符号右移和零填充右移。
按位并在 Java 中通过 &
实现。
参见 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
VB语句
pBuffer(1)=Bit.ShiftRight(Bit.And(firmware_version, 0xFF00),8)
因此可以通过Java实现之类的
pBuffer[1]= (firmware_version & 0xFF00) // Bit.And
>> 8 // shift right 8 bits
关于java - Bit.ShiftRight - 在 Java 中等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901186/