java基础 易忘易混点复习1

时间:2022-04-17 07:58:23

原码 反码 补码

原码

正数的原码最高位是0  负数的原码最高位是1

例如:+7  0 0000111

    -7  1 0000111

反码

正数的反码与原码相同  负数的反码相比原码 符号位不变,数值位取反

例如:

  -5

  原码:1 0000101

  反码:1 1111010

补码

正数的补码与原码相同  负数的补码是在反码的基础上+1

例如:

  -5

  反码:1 1111010

  补码:1 1111011

逻辑运算符

&  |  ^

&  逻辑与 : 有false则false。
|   逻辑或 : 有true则true。
^   逻辑异或 : 相同为false,不同为true。

位运算符(所有运算都是以补码为基础

&    位与      有0则0

|      位或      有1则1

^   位异或     相同则0,不同则1

~     按位取反    0变1,1变0

(  ^的特点:一个数据位异或两次,该数本身不变  )

<<  左移 左边最高位丢弃,右边补齐0
>>  右移 最高位是0,左边补齐0;最高为是1,左边补齐1
>>>   无符号右移 无论最高位是0还是1,左边补齐0