gpt4 book ai didi

c - 这个 '>>='是什么意思?

转载 作者:行者123 更新时间:2023-11-30 20:44:55 25 4
gpt4 key购买 nike

在阅读“C”代码时,我遇到了这行代码

b>>=1;

谁能解释一下这是什么意思?

最佳答案

这个基于运算符 >>= 的表达式称为复合赋值运算符

b>>=1;

相当于

b = b >> 1;

b >> 1 如果运算符不是 iser 定义的运算符,则将存储在 b 中的值右移一位。例如,如果 b 具有以下内部表示(假设 b 具有 unsigned char 类型)

00001111

然后 b >> 1 结果

00000111

b 应具有整型。如果 b 为负,则结果由实现定义。正如我已经提到的,您可以为用户定义的类型重载此运算符。

事实上,表达式 b >> 1 相当于 b/2 正如您在上面的示例中看到的,原始值 00001111 是相等的为十进制的 15,而结果值 00000111 等于十进制的 7。使用表达式 b/2

可以获得相同的结果

因此

b >>= 1;

也可以写成

b /= 2;

关于c - 这个 '>>='是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529364/

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