当前位置:   article > 正文

Golang之位运算_goland 整数位运算

goland 整数位运算

计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高。
源码 反面 补码

在这里二进制的最高位是符号为 0 是正数 1是负数
1===》0000 0001
-1==》1000 0001
整数的源码 反码 补码都一样
负数的反码等于当前码号位不变其他取反
-1补码 1111 1111
负数的补码 = 它的反码+1
0的反码 补码都是0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在运算的时候都是以补码的方式来计算的
位运算符

&与,两位全为1 结果就是1 否则就是0
2&3
2补码 0000 0010
3补码 0000 0011
结果  0000 0010
|或 两位有1 就是1 否则是0
2|3
2补码 0000 0010
3补码 0000 0011
结果  0000 0011
^异或 两位 1个为0 一为1 结果为1 否则为0 
2^3
2补码 0000 0010
3补码 0000 0011
结果  0000 0001

>>低位溢出 符号位不变,并用符号位补溢出的高位
<<符号位不变 低位补0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/790225
推荐阅读
相关标签
  

闽ICP备14008679号