按位运算&&&&原码反码补码

  • Post author:
  • Post category:其他




一、原码反码补码

1、二进制的最高位是符号位:0表示正数,1表示负数

2、正数的原码、反码、补码都是一样的

3、负数的反码 = 它的原码符号位不变,其他位取反(1-0,0-1)

4、负数的补码=它的反码+1,负数的反码 = 它的补码-1

5、0的反码,补码都是0

6、java没有无符号数,换言之,java中的数都是有符号的

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

8、当我们看运算结果的时候,要看它的原码(重点)



二、按位运算



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

在这里插入图片描述



按位或 | :有一位为1,结果为1,否则为0

在这里插入图片描述



按位异或 ^ :一位为1一位为0,结果为1,否则为0

在这里插入图片描述



按位取反 ~ :1-0 , 0-1

在这里插入图片描述



位运算符

按位运算符>> << >>>运算规则

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

例:int a = 4 >> 2 ; a = 1 ;

右移相当于:4/2/2 =1

2、算数左移 <<:符号位不变,低位补0

例:int a = 4 << 2 ; a = 1 ;

右移相当于:4

2

2 =16

3、>>> 逻辑右移,无符号右移:低位溢出,高位补0 (老师没讲)

4、没有 <<< 这个

在这里插入图片描述



版权声明:本文为weixin_58561766原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。