位运算,效率高

1、先理解原码、反码、补码

  正数的原码、反码、补码都一样。

    举例  10为例。

  关键是负数。

      原码:

      反码:最高位不变,其余的取反得到:1111  1111  1111  1111  1111  1111  1111  0101

      补码:等于反码加1。         1111  1111  1111  1111  1111  1111  1111  0110

2、位运算

  位运算符:操作数是整数,但是操作负整数时,用的是补码!!!!!

  左移   << :  右边补0

  右移   >>:   左边补0或1,如果原数最高位是1就补1,是0就补0.

  无符号右移   >>> :  左边补0

  按位与  & :二进制对应位置取与  ,同时为1才为1,否则为0

  按位或  | :二进制对应位置取或  ,有一个为1就为1

  按位异或运算 ^ :二进制对应位置取异或  ,两者不同才为1

  按位取反  ~ :二进制对应位置取反  ,原来是1,变为0,原来是0变为1

  说明:位运算符都是机器数直接运算的

    

猜你喜欢

转载自www.cnblogs.com/xingrui/p/10198857.html