Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的位移位_Java_Bit Manipulation_Bit - Fatal编程技术网

Java中的位移位

Java中的位移位,java,bit-manipulation,bit,Java,Bit Manipulation,Bit,可能是我太累了。 为什么下列值不显示相同的值 int x = 42405; System.out.println(x << 8); System.out.println((x &0x00ff) << 8); intx=42405; System.out.println(xEDIT:好的,我把下面的部分留给子孙后代 如果x是int,那么它非常简单:x下面,x是0xff,在一种情况下,你屏蔽了上面的3个字节,这意味着你 您可以(0x123和0x00ff)你的

可能是我太累了。
为什么下列值不显示相同的值

int x = 42405;
System.out.println(x << 8);  
System.out.println((x &0x00ff) << 8);  
intx=42405;

System.out.println(xEDIT:好的,我把下面的部分留给子孙后代


如果
x
int
,那么它非常简单:
x下面,x是0xff,在一种情况下,你屏蔽了上面的3个字节,这意味着你

您可以
(0x123和0x00ff)你的输出是什么?对我来说很好,有几个值;为什么不起作用?对不起,伙计们。更新了类型的帖子为什么显示相同的值?@Carlos:这是我所期望的。我错了。现在对我来说很清楚0x00ff不是暗示类型很短吗?@pablochan:不一定。基本上,这完全不清楚-我们不得不这么做pe OP实际上提供了更多的信息…@user384706:我已经编辑了我的答案。你知道
int
在Java中总是32位的,对吗?
11111111111111111111111100000000 = -256
00000000000000001111111100000000 = 65280
int x = 0x123;
System.out.println(x << 8);  //prints 74496
System.out.println((x &0x00ff) << 8); //prints 8960
byte x = (byte)0xAA; //x is negative
System.out.println(x << 8);  //prints -22016
System.out.println((x &0x00ff) << 8); //prints 43520