【发布时间】:2020-01-13 14:07:41
【问题描述】:
DAT_1001b50C 是一个数字,我对它进行位移。 现在我对以下行有疑问:
return DAT_1001b50C >> 0x10 & 0x7fff;
这行会返回吗
DAT_1001b50C >> 0x10
and
DAT_1001b50C >> 0x7fff
或者这会返回
(DAT_1001b50C >> 0x10) >> 0x7fff
【问题讨论】:
-
你为什么不自己做一个快速测试呢?如果不能,为什么不添加括号来确定运算符的顺序?
-
您似乎对
&的含义感到困惑。它是按位“与”运算符。这并不意味着“也”。 -
此外,如果您要移动 0x7FFF,则顺序不会有任何区别,因为无论如何结果都会为零,除非您有某种超过 32K 位的超长整数数据类型……
标签: c return bit-manipulation bit