java - 通过位移来读/写数据

标签 java

我在 Java 中将 2 个整数作为一个 long 发送,但我一生都无法弄清楚如何使用位移位正确地发送这些整数。

我有一个方法来创建长:

public long create(int one, int two){
return      (one <<32 & two);
}

首先,这是正确的吗? (将两个整数放在一个长整型中一起发送)

其次,如果我想访问其中一个或两个,我该怎么做?

这是一个简单的情况吗:

   public static int getOne(long theLong) {
        return (int)theLong >> 32;

    }

或者有更复杂的事情吗?

非常感谢一些指导,谢谢!

最佳答案

当移动 int 时第二个运算符(移位宽度)的值为 & 'ed 为 31,所以 someInt << 32someInt 。投出您的intlong换档前:(long) someInt << 32 ,现在将给出您期望的结果。

关于java - 通过位移来读/写数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351337/

相关文章:

java - 在哪里放置应用程序状态?

java - 使用 java Rest Binding 在 aws 实例上使用 Neo4j

java - 自定义使用 JUnit @Parameters 运行哪些测试?

java - 列出 Galaxy S III 上所有可用的共享库

java - 从 VB6 调用使用 JNI 的 dll 时,来自 JNI_CreateJavaVM 的 JNI_ENOMEM

java - 无法解析类型 java.lang.Object。它是从所需的 .class 文件中间接引用的

java - Maven 使用错误版本的 android 进行编译

java - 如何在 Java 中获取资源 'R.raw.img' + r?

java - 在android中通过子元素的类类型返回子元素

java - 使用非总排序标准对 java 流进行排序。