·位运算符

A:

1)&(位与), |(位或), ^(位异或), ~(反码:按位取反)

     注意事项:计算一个数据对另一个数据进行位运算操作,必须先将数据转换为二进制补码

正数的原码、反码、补码相同,不用转换,但本质还是补码

在计算负数时,应先将负数转换为补码,再计算

a.3&4

【JavaSE学习笔记】位运算符

b.3|4

【JavaSE学习笔记】位运算符

c.3^4

【JavaSE学习笔记】位运算符

特点(考点):一个数据被另一个数据位异或两次,其值本身不变

【JavaSE学习笔记】位运算符

面试题:实现两个数据值的交换

方法1:(中间变量法:开发中常用

【JavaSE学习笔记】位运算符

方法2:(使用位异或特点,面试中常用主要是看是否了解位异或特点

【JavaSE学习笔记】位运算符

方法3:(变量相加,了解)

【JavaSE学习笔记】位运算符

d.~3

【JavaSE学习笔记】位运算符

2)<<:左移动:最高位丢弃掉,在右边补齐0

心法:a<<b = a * (2^b)

【JavaSE学习笔记】位运算符

3)>>:右移动:最高位是1,左边补齐1,否则补齐0

心法:a>>b = a / (2^b)

【JavaSE学习笔记】位运算符

4)>>>:无符号右移动:无论最高位是多少,左边都补齐0

心法:若a>=0为正,则a>>>b = a / (2^b)

【JavaSE学习笔记】位运算符

           若a<0,则转换为二进制补码,再计算

【JavaSE学习笔记】位运算符


相关文章: