ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

位运算符和移位运算符

2022-02-02 13:32:20  阅读:155  来源: 互联网

标签:0000 0011 0010 补码 运算符 按位 移位


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:来自尚硅谷 韩顺平

标签:0000,0011,0010,补码,运算符,按位,移位
来源: https://www.cnblogs.com/PatrickStarGazer/p/15860257.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有