java - Bit.ShiftRight - 在 Java 中等效

标签 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)

考虑 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/

相关文章:

java - 为什么 Post 方法不在 HTTPS/SSL 上的 Tomcat7 中加密 header

java - 从与类路径不同的位置加载 spring XML

vb.net - RecieveBufferSize 超出范围异常 (.NET)

c - 从 C 中的 32 位 float 中提取位

java - 如何通过单击按钮更改 webview 的 url?

java - 在 Android 中向下滚动 RecyclerView

sql - 从ComboBox选择中查找数据库

.net - 在 VB.Net 中进行未经检查的整数加法的最快方法?

java - 为什么它会得到这样的一点呢?

javascript - 在数组中查找一对数字是否可以用按位运算符解决