Amadeus's Studio.

理解Go位运算符

字数统计: 258阅读时长: 1 min
2019/07/08 Share

假定A = 14, B = 11,转换为二进制:A = 1110, B = 1011。

A 1 1 1 0
B 1 0 1 1
A&B 1 0 1 0
A\ B 1 1 1 1
A^B 0 1 0 1

A&B 转换为十进制等于10;
A|B 转换为十进制等于15;
A^B 转换为十进制等于5;
& 是求与,两个数都为1才为1,其余情况为0;
| 是求或,两个数都为0才为0,其余情况为1;
^ 是求异,两个数相同时为0,不同时为1;
还有 << 左移运算,将数字的二进制左移n位,或是将数字的十进制乘以2的n次方,由”<<”右边的数指定移动的位数,高位丢弃,低位补0;

N * 2 等同于 N << ㏒₂2 = N << 1

“>>” 右移运算,将数字的二进制右移n位,或是将数字的十进制除以2的n次方,由”>>”右边的数指定移动的位数;

N / 2 等同于 N >> ㏒₂2 = N >> 1

CATALOG