gpt4 book ai didi

java - Java 中的运算符优先级(位移运算符): why is the following output true?

转载 作者:行者123 更新时间:2023-11-29 06:35:22 24 4
gpt4 key购买 nike

这对你来说似乎是一个非常简单的问题,但我真的被卡住了。

e = 16 >> 1 >> 2 % 2 == 8

事实证明这是真的,但我不明白为什么。我知道我首先执行 2%2==0 但接下来是什么?

最佳答案

如您所说,2 % 2首先得到评估,留下 16 >> 1 >> 0 == 8 .接下来是第一个 >> ,当你将 16 右移一位时,你得到 8。所以表达式变成 8 >> 0 == 8 .

下一个运算符是剩下的>> ,但现在你右移了零位,这当然不会改变任何东西;表达式为 8 == 8 .最后一个操作是== ,这当然会返回 true .

请注意,将整数右移一位时,相当于将其值减半(如果原始整数为奇数,则向下舍入)。无论您右移多少位,都必须将其减半很多次。例如,64 >> 364 / 2 / 2 / 2相同这是 8。

关于java - Java 中的运算符优先级(位移运算符): why is the following output true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com