int z = -1; int m = z>>1; System.out.println("the values is " +m);
向右移位运算功能
输出是 the values is -1
,但我的疑问是它内部是如何发生的,任何能解释一下吗?一步一步程序。
int z = 2; int m = z >> 1;
在二进制
00000000 00000000 00000000 00000010
z值,
的值被移位然后经过二进制M值将作为
00000000 00000000 00000000 00000001
,当我打印m
值将它作为1
,但我的问题是,如果我为z变量使用负值,并且为z赋值-1,为什么输出变量本身具有-1,会发生什么? (两者相辅相成,会发生不?)
你是指内部发生了什么?右移运算符在[JLS](http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.19)中有解释。你不明白的是什么? – RealSkeptic
请求“一步一步”的任何事情通常都是要求写入规范的新完整教程。这感觉就像你根本没有做任何工作,并要求别人做很多志愿者的努力。关于Stack Overflow的一个很好的提示是为了表明你已经做出了很好的努力,如果你不能在一个问题中表明这一点,那么首先要做更多的努力。 – halfer