位运算符

位运算符

按位运算符

按位与(&):有0则0,同1为1

按位或(|):有1则1,同0为0

按位取反(~):1变0;0变1

按位异或(^):相同为0,不同为1

a b 按位与(a&b) 按位或(a|b) 按位取反(~a) 按位异或(a^b)
0 0 0 0 1 0
0 1 0 1 1 1
1 0 0 1 0 1
1 1 1 1 0 0

移位运算符

  1. 左移位(<<)

    (1)操作:将数据转为二进制(int 型32位)的数,将数左移,高位溢出舍弃,低位空位补0

    (2)总结公式:左移几次就是该数据乘以2的几次方

    (3)应用:可以完成2的次幂运算

  2. 右移位(>>)

    (1)操作:将数据转为二进制(16位)的数,将数左移,低位溢出舍弃,高位空位补位
    最高位补位:对于高位出现的空位,原来最高位是什么就用什么补,保证符号位不变
    最高位是1用1补,最高位是0用0补

    (2)总结公式:右移几次就是该数据除以2的几次方

  3. 无符号右移位(>>>)

    操作:与右移位相同
    不同点:最高位补位时,无论原最高位是什么,都补0

注意

  1. ​ 1:逻辑真 0:逻辑假
  2. byte与short是低精度的整型,不适用于做无符号右移,会产生溢出

posted on 2021-05-07 20:54  凡人精灵  阅读(36)  评论(0编辑  收藏  举报

导航