JAVA里面的位运算符>>,<<,>>>是什么意思,请举个列子具体说明一下?

如题所述

java 中:

>>带符号右移 (n>>2 将整型值带符号右移2位 )
<<带符号左移 (n<<2 将整型值带符号左移2位 )
>>>无符号右移 (n>>>2 将整型值无符号右移2位 ) 在32位系统中任何数左移(右移)32位还是它本身 例如:�6�1a=a<<2将a的二进制数左移2位,右补0。若a=15,即二进制数00001111,左移2位得00111100,即十进制数60(为简单起见,我们用8位二进制数表示十进制数15,如果用16位,结果是一样的)。高位左移后溢出,舍弃不起作用。左移1位相当于该数乘以2,左移2位相当于该数乘以22=4。上面举的例子15<<2=60,即乘了4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。例如,假设以一个字节(8位)存一个整数,若a为无符号整型变量,则a=64时,左移一位时溢出的是0,而左移2位时,溢出的高位中包含1。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-03
<<时 a=64并不存在高位溢出问题 因为是0000 0000 0100 0000 /*64的2进制数*/0000 0010 0000 0000 /*右移了2位以后的*/ a=256所以也可以乘以移动的位数

JAVA里面的位运算符>>,<<,>>>是什么意思,请举个列子具体说明一下?_百 ...
java 中:>>带符号右移 (n>>2 将整型值带符号右移2位 )<<带符号左移 (n<<2 将整型值带符号左移2位 )>>>无符号右移 (n>>>2 将整型值无符号右移2位 ) 在32位系统中任何数左移(右移)32位还是它本身 例如:�6�1a=a<<2将a...

三个“>>>”什么意思? 2个“>>”什么意思 有例子说明最好 谢谢啦_百度...
在Java中,“>>”、">>>"都是位运算符。“>>”为右移,“>>>”为无符号右移。例如:4>>2=1,即将4转换为二进制0100,右移两位变为0001。有符合右移(右移)与无符号右移的区别在于移位后填充的数字不一样。正数右移,缺位填充0,负数则填充0;而正负数无符号右移都填充0 ...

Java 中“>>”和“>>>”有什么区别?
>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。表达式为:result = exp1 >> exp2;result = exp2 >>> exp2;表示把数exp1向右移动exp2位。例如:res = 20 >> 2;2...

JAVA中的“>>”和“>>>”运算符
1、>>:右移运算符,num >> 1,相当于num除以2。按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。符号位不变。如:-1在32位二进制中表示为:11111111 11111111 11111111 11111111 -1>>1:按位右移,符号位不变,仍旧得到11111111 11111111 ...

求:JAVA中常用位运算符及其用法详解
运算符 名称 示例 说明 & 位与 x&y 把x和y按位求与 | 位或 x|y 把x和y按位求或 ~ 位非 ~x 把x按位求非 ^ 位异或 x^y 把x和y按位求异或 >> 右移 x>>y 把x的各位右移y位 << 左移 x<<y 把x的各位左移y位...

java >>=怎么算的
java中>>代表的是向右移位运算,而>>=代表的是向右移位运算时将运算的结果同时赋值给原值,举个例子说明一下:int index = 7;int index2 = index>>1,则表示将7转化为二进制数后向右移动一位,而原值不变,故index = 7 ,index2 = 3;int index3 = index>>=1,则表示将7转化为二进制...

Java,a>>b是什么意思?
<< 和>>是java中的移位运算符,<<是左移位,>>是右移位,因为数据存储是二进制的所以左移1相当于乘以2的1次方,右移相当于乘以2的-1次方,例如 << : 左移运算符,num << 1,相当于num乘以2,num << 2,相当于num乘以2再乘以2 >> : 右移运算符,num >> 1,相当于num除以...

Java中的位移运算中的>>(逻辑右移)和>>>(算术右移)的区别?
逻辑右移是将各位依次右移指定位数,然后在左侧补0,算术右移是将各位依次右移指定位数,然后在左侧用原符号位补齐

java中>和>>的区别?
“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。举例:4 >> 2 4\/(2*2) = 1 ...

java中的>>>和>>>=是什么意思
~ 按位非(NOT)(一元运算)& 按位与(AND)| 按 位或(OR)^ 按位异或(XOR)>> 右移 >>> 右移,左边空出的位以0填 充 运算符 结果 << 左移 &= 按位与赋值 |= 按位或赋值 ^= 按 位异或赋值 >>= 右移赋值 >>>= 右移赋值,左边空出的位以0填充 <<= 左 移赋值 ...

相似回答