为了账号安全,请及时绑定邮箱和手机立即绑定

>>= 运算符有什么作用

>>= 运算符有什么作用

Go
隔江千里 2021-11-08 19:36:11
我正在阅读 go 中 sort 的实现,并且在实现中有这个特定的循环func Sort(data Interface):for i := n; i > 0; i >>= 1 {     maxDepth++}排序实现:https : //golang.org/src/sort/sort.go有人可以向我解释 >>= 运算符的作用吗?编辑:这只是一个转变,然后是做作。我认为这是一个循环的事实让我心烦意乱。
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

>>操作是向右移位运算符。

>>=是右移运算符赋值的简化形式:

i >>= 1

它与以下内容相同:

tmp := i >> 1
i = tmp

这与(无需创建新变量)相同:

i := i >> 1


查看完整回答
反对 回复 2021-11-08
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

检查:https : //golang.org/ref/spec

left shift             integer << unsigned integer
right shift            integer >> unsigned integer

移位运算符将左操作数移位右操作数指定的移位计数。如果左操作数是有符号整数,则它们实现算术移位,如果它是无符号整数,则它们实现逻辑移位。班次计数没有上限。移位的行为就像左操作数被移位 n 次,移位计数为 n。因此,x << 1 与 x*2 相同,x >> 1 与 x/2 相同,但向负无穷大截断。


查看完整回答
反对 回复 2021-11-08
  • 2 回答
  • 0 关注
  • 236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信