手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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

时间:2024-10-14 06:01:50

精度由大到小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结果

© 手抄报圈