韩顺平 java笔记 第20讲 二进制 位运算 移位运算

时间:2022-10-17 21:05:05

1.对于有符号的而言

  二进制的最高位是符号位,1表示整数 1表示负数

  正数的源码 反码 补码都一样

  负数的反码 = 它的源码符号位不变,其他位去反

  负数的补码 = 它的反码+1

  0 的反码 补码 都是0

  java没有无符号数,java中的数都是有符号的

  在计算机运算的时候,都是以补码的方式来运算的

2.位运算

  按位与&:两位全为1,结果为1

  按位或|:两位有一个为1,结果为1

  按位异或:两位一个为0,一个为1,结果为1

  按位去反:0->1  1->0

3.移位运算

  >>算术右移:低位溢出,符号位不变,并用符号位补溢出的高位

  <<算术左移:符号位不变,低位补0

  >>>逻辑右移,低位溢出,高位补0

    -2 原码: 10 ——010

     反码:  11 ——101

     补码 : 11 ——110