- 位运算
- 位运算是针对二进制中的0和1进行的运算
- 按位与:& 两个位都是1则为1,其它为0
- 按位或:| 两个位其它一个为1则为1,其它为0
- 位清除 &^:指定的位置为0,比如 11&^2 等于 9 ,因为11的二进制为:1011,把第2位置为0则是1001,所以转换为十进制后结果是9
- 按位异或:^,相同为0,不同为1,可用于交换两个数
- 左位移<<:丢弃高位,低位补0,如果是负数,最高那位依然是1,相当于乘以2的次方
- 右位移>>:丢弃低位,高位补0,如果是负数,最高那位依然是1,相当于除以2的次方
- 举例:左位移产生磁盘存储单位大小
- 代码:
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) - 结果:
1208925819614629174706176
- 代码: