Java 位运算

1.源码 2.反码 3.补码

注意的规则:

1.正数的三个码都是一致的,不需要转换

2.负数必须转换成补码才能运算

3.计算机真正参与运算的是补码

4.在java中所有的数字都是由符号的, 符号位0正数,1负数

5.符号位就是最高位,也是最左边的一位

6.负数的反码=符号位不变+其他位取反

7.负数的补码=反码+1

算数右移和算数左移

算数右移:

     >>:位移的方向,右

    1/2/3……:位移的位数

1.正数符号位不变

2.低位溢出删除

3.高位补0

4.负数先转换成补码再进行算数右移动运算

算数左移:

1.符号位不变

2.高位溢出删除

3.低位补0

逻辑右移,没有逻辑左移:

1.不管符号位

2.低位溢出删除

3.高位补0

位运算:

& | ^ ~

1.&按位与:两位都是1,结果才是1

2.|按位或:两位有一位是1,结果就是1

3.^按位异或:两位必须一个为0,一个为1,结果才是1

4.~按位取反:只能是一个表达式使用,

    (01.源码全部取反02.转化成反码03.转换成补码)

正数的按位取反,等于自身的负数-1,负数的按位取反,等于自身的绝对值-1

原文地址:https://www.cnblogs.com/s10-/p/8125088.html