go - 4.8 位运算

1. 原码,反码,补码

对于有符号的数字而言:
1. 二进制的最高位是符号位,0表示正数,1表示负数
2. 正数的原码,反码,补码都一样
3. 0的反码,补码都是0
4. 负数的反码=它的原码符号位不变,其余位取反(0变成1,1变成0)
5. 负数的补码=它的反码+1
6. 在计算机运算的时候,都是以补码的方式来运算的

2,位运算符和移位运算符

2.1 位运算符 ##原理就是将两个数字转换成它的补码,对补码的每一位进行:与,或,异或,然后再将得到的结果转换为原码
  1. 按位与&,两个全为1,则为1,否则为0
  2. 按位或|,两位有一个为1,结果为1
  3. 按位异或^, 两位相同为0,否则为1

2.2 移位运算符
  1. a>>n 将数值a对应的二进制乘以2的n次方,即除符号位外,其余向右移动n位,在符号位后面补上相同个数的0
  2. a<<n 将数值a对应的二进制除以2的n次方,即除符号位外,其余向左移动n位,在最后相同个数的0

 

posted @ 2020-12-06 21:03  10132714  阅读(95)  评论(0编辑  收藏  举报