我在 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 << 32
是 someInt
。投出您的int
至long
换档前:(long) someInt << 32
,现在将给出您期望的结果。
关于java - 通过位移来读/写数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351337/