易学笔记-Go语言-第4章:基本结构和基本数据类型/4.5 基本类型/4.5.6 位运算

  • 位运算
  1. 位运算是针对二进制中的0和1进行的运算
  2. 按位与:& 两个位都是1则为1,其它为0
  3. 按位或:| 两个位其它一个为1则为1,其它为0
  4. 位清除 &^:指定的位置为0,比如 11&^2 等于 9 ,因为11的二进制为:1011,把第2位置为0则是1001,所以转换为十进制后结果是9
  5. 按位异或:^,相同为0,不同为1,可用于交换两个数
  6. 左位移<<:丢弃高位,低位补0,如果是负数,最高那位依然是1,相当于乘以2的次方
  7. 右位移>>:丢弃低位,高位补0,如果是负数,最高那位依然是1,相当于除以2的次方
  8. 举例:左位移产生磁盘存储单位大小
    1. 代码:
      const (
          _          = iota             // 把iota为0
          KB float64 = 1 << (10 * iota) //这时候的iota为1,KB= 1024,后面依次加1
          MB                            //相当于 1024 *1024,后面依次类推
          GB
      
          TB
      
          PB
      
          EB
      
          ZB
      
          YB
      
      )
      fmt.Printf("%1.0f\n", YB)
    2. 结果:

      1208925819614629174706176

猜你喜欢

转载自blog.csdn.net/u011830122/article/details/84327182