java基础要点:[1]移位运算

2025-10-23 11:58:41

精度由大到小long>double>int>float

范围由大到小double>float>long>int

移位运算

1)<<:左移位操作符

  把2的二进制位向左移动3位,高位左移后溢出(以左为高),舍弃不用,在右边补0

  2<<3:2的2进制表示法左移3位, 规律是左边的数字*2的右边的数字的次方

  2的2进制应该是0000 0010,

  左移3位后0001 0000

  再转成十进制就是2*4=16

  3<<2:3*2^2                   

  -3<<2:-3*2^2

  面试题:用最有效率的方法算出2乘以8等于几?

  2<<3

2)>>:右移位操作符

  表示算数右移,用来将一个数的二进制序列右移若干位,右端之后的空位用符号位填充,

  如果是正数用0补,负数用1补充。

  6>>2:1

  00000000 00000000 00000000 00000110 6

  00000000 00000000 00000000 00000110右移2位,正数补0,结果为1

  00000000 00000000 00000000 00000001

  -6>>2:-2

  00000000 00000000 00000000 00000110 6

  11111111 11111111 11111111 11111001

  11111111 11111111 11111111 11111010 -6

  右移两位,结果为负数

  11111111 11111111 11111111 111111110

  1000000000  00000000 00000000 000001

  1000000000  00000000 00000000 000010  -2

3)>>>:无符号右移操作符

  表示逻辑右移,用来将一个数的二进制位添0右移若干位,即向右移动若干位,

  移到右端的低位被舍弃,最高位添0,它也叫无符号右移。规律:左边的数字/2^n

  6>>>2:1

  00000000 00000000 00000000 00000110 6

  0000000000 00000000 00000000 00000110右移两位,正数补0,结果为1

  -6>>>2:1073741822

  11111111 11111111 11111111 11111010 -6

  0011111111 11111111 11111111 11111010右移两位,补充0,结果为1073741822

4)移位操作的数据类型可以是byte,char,short,int ,long

  但是对byte,char,short进行操作时会先把他们变成int型,最后得到int结果

(共篇)下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢