golang 二进制 *** 作

golang 二进制 *** 作,第1张

概述http://blog.guoqiangti.com/?p=538 以前很少对二进制进行 *** 作,在看effective go的时候,好像没有看到关于二进制 *** 作符的说明.今天在看其他源码的时候,看到一些二进制 *** 作符,不知道他的意思,所以就查查资料,温习一下.  按位或 | .| (按位或):【解义】对两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0,1|1=1,0|1=1 等。

http://blog.guoqiangti.com/?p=538


以前很少对二进制进行 *** 作,在看effective go的时候,好像没有看到关于二进制 *** 作符的说明.今天在看其他源码的时候,看到一些二进制 *** 作符,不知道他的意思,所以就查查资料,温习一下.

按位或 |

.| (按位或):【解义】对两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0,1|1=1,0|1=1
等。
4|-5:
4的二进制形式为:00000000 00000000 00000000 00000100,
-5的二进制形式为:11111111 11111111 11111111 11111011,
逐位进行逻辑或运算:11111111 11111111 11111111 11111111,即得到-1.

2. &(按位与)

【解义】对两个整数的二进制形式逐位进行逻辑与 运算,原理:1|0=0,1&1=1;0&1=0等。
4&-5:
4的二进制形式为:00000000 00000000 00000000 00000100,
-5的二进制形式为:11111111 11111111 11111111 11111011,
逐位进行逻辑与运算:00000000 00000000 00000000 00000000,即得到0.

实际应用:可以把字节转换为整 数,-64&0xFF=192,也可以用八进制的形式,-64&0377=192、

其实0xFF和0377都表示的是整数255、

3.^(按 位异或)

【解义】对两个整数的二进制形式逐位进行逻辑异或运算,原理:1^1=0,1^0=1,0^1=1,0^0=0.
4^-5:
4的二进制形式为:00000000 00000000 00000000 00000100,
-5的二进制形式为:11111111 11111111 11111111 11111011,
逐位进行逻辑异或运算:11111111 11111111 11111111 11111111,即得到-1.

实际应用:按位异或可以比较两个数字是否相等,它利用 1^1=0,0^0=0的原理。 20^20==0

总结

以上是内存溢出为你收集整理的golang 二进制 *** 作全部内容,希望文章能够帮你解决golang 二进制 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1287015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存