java计算的问题 菜鸟在线等

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:32:40
是关于移位运算符的:

int i=-1;
int c=i<<2;
System.out.println(i);
System.out.println(c);

结果:-1 -4
前者我明白,后者为什么?
说详细些,实在弄不懂!能不能再详细些,把两个结果都说明一下.择长采纳!

左移位(<<)是将左操作数的二进制值向左移位右操作数制定的位数,左移后,低位补0,移出的高位舍去。
“int c=i<<2;” 分成两部分看:先计算i<<2,然后把结果赋给C !
-0001==-1
-0100==-4

<<是左移的意思,把1转化为二进制,再左移两位就变成100,二进制的100转化为十进制就是4,所以结果是-4。

把数字转化为 二进制

优先级比较,然后判断,2的0次方是-1,左移2位,在2进制中就是-4

i<<2
是平方什么的吧
好象是2的平方再乘-1