public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = -4;
System.out.println(i >> 3);//-1
System.out.print(i >> 5);//-1
}
}
为什么结果是-1,不是0
java二进制左移 >>> 什么意思?int a=-1;a=a>>>24 为什么a是 255...
“>>>”是右移位运算符好8,看方向都知道了。“>>>”在右移后,在最左边补上0。另外顺带介绍一下“<<”和“>>“运算符:“<<”左移运算符在左移后,右边补上0;“>>“右移运算符则相反,在右移后,左边补上原来的位(原来是0就补上0,原来是1就补上1)。注意这里”>>>“和“>>...
Java中的位移运算中的>>(逻辑右移)和>>>(算术右移)的区别?
逻辑右移是将各位依次右移指定位数,然后在左侧补0,算术右移是将各位依次右移指定位数,然后在左侧用原符号位补齐
JAVA中的“>>”和“>>>”运算符
1、>>:右移运算符,num >> 1,相当于num除以2。按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。符号位不变。如:-1在32位二进制中表示为:11111111 11111111 11111111 11111111 -1>>1:按位右移,符号位不变,仍旧得到11111111 11111111 ...
java位移运算符
1) “有符号”左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。左移移位相当于乘以2,例如 3 << 2 \/\/12 则是将数字3左移2位 3*2*2 = 3*(2的2次方)分析:首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧...
Java,a>>b是什么意思?
<< 和>>是java中的移位运算符,<<是左移位,>>是右移位,因为数据存储是二进制的所以左移1相当于乘以2的1次方,右移相当于乘以2的-1次方,例如 << : 左移运算符,num << 1,相当于num乘以2,num << 2,相当于num乘以2再乘以2 >> : 右移运算符,num >> 1,相当于num除以...
Java中,位运算符>>,右移时左边何时补0,何
举个例子:2左移动3位 2(十进制)=00000010(二进制)二进制00000010向左移动三位变成了00010,超出了8位,相当于删除前三个字符位,删除之后又由于不满足8位,后面填0,变成00010000 00010000(二进制) = 16(十进制)
java >>=怎么算的
java中>>代表的是向右移位运算,而>>=代表的是向右移位运算时将运算的结果同时赋值给原值,举个例子说明一下:int index = 7;int index2 = index>>1,则表示将7转化为二进制数后向右移动一位,而原值不变,故index = 7 ,index2 = 3;int index3 = index>>=1,则表示将7转化为二进制...
Java中,–128>>4等于多少,怎么算的
在JAVA中,>>是移位运算符,4表示向右位移4位,–128转为二进制是-10000000,向右移动4位就是-1000(二进制),转回即为-8。
JAVA里面的位运算符>>,<<,>>>是什么意思,请举个列子具体说明一下?_百 ...
java 中:>>带符号右移 (n>>2 将整型值带符号右移2位 )<<带符号左移 (n<<2 将整型值带符号左移2位 )>>>无符号右移 (n>>>2 将整型值无符号右移2位 ) 在32位系统中任何数左移(右移)32位还是它本身 例如:�6�1a=a<<2将a...
Java中,位运算符>>,右移时左边何时补0,何时补1
“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。这一运算...