Go
mid := l + r >> 1
与
mid := (l + r) >> 1
会有不同的结果是吗?
用 Go 刷算法题,发现这里常常卡错误,使用第二个加括号可以正确 AC
第一个+优先级高于>>,应该也是正确的,但是得到的mid应该和第二个不一致,因为无法通过判题
Go
mid := l + r >> 1
与
mid := (l + r) >> 1
会有不同的结果是吗?
用 Go 刷算法题,发现这里常常卡错误,使用第二个加括号可以正确 AC
第一个+优先级高于>>,应该也是正确的,但是得到的mid应该和第二个不一致,因为无法通过判题
|
zidyAug 12, 2025
1
|
|
KisesyAug 12, 2025
2
你放到编辑器里,格式化一下,哪个离得近,哪个优先级高,例如: mid := l + r>>1
|
|
3
|
|
spritecnAug 13, 2025
4
@houhaibushihai 个人感觉 位移优先更合理,习惯性的以为+-优先级最低
我是习惯给加减括号起来的,不管啥语言,看见加号就觉得低人一等 |
|
spritecnAug 13, 2025
5
不确定就括起来,不丢人
|
|
wuhunyuAug 13, 2025
6
我一直是括起来的,这样就不需要记不同语言的优先级区别.就是有时候括号多了影响阅读(如果不嫌烦可以使用换行来分隔复杂的表达式),虽然有插件可以做到颜色匹配,但这对色弱来说也不友好
|