位运算符和移位运算符

golang中有3个位运算

按位与&、按位或|、按位异或^

按位与&:两位全为1,结果为1,否则为0

按位或|:两位有一个为1,结果为1,否则为0

按位异或^:两位一个为0,一个为1,结果为1,否则为0

例如:

2&3=2

2的补码0000 0010

3的补码0000 0011

2&3=   0000 0010

 

-2^2=-4

2的补码 0000 0010

-2的补码1111 1110

-2^2=   1111 1100(补码)==》1111 1011(反码)==》1000 0100(原码)

 

2|3=3

2的补码0000 0010

3的补码0000 0011

2|3=     0000 0011

 

2^3=1

2的补码0000 0010

3的补码0000 0011

2^3=   0000 0001

 

golang中有2个移位运算符

>>、<<右移和左移

右移运算符 >>:低位溢出,符号位不变,并用符号位补溢出的高位

左移运算符 <<:符号位不变,低位补0

例如:

a := 1 >> 2 //0000 0001 ==》0000 0000 = 0

b := 1 << 2 //0000 0001 ==》0000 0100 = 4

 

PS:来自尚硅谷 韩顺平


__EOF__

本文作者StarGazer
本文链接https://www.cnblogs.com/PatrickStarGazer/p/15860257.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Star_Gazer  阅读(45)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示