【发布时间】:2016-09-05 17:02:47
【问题描述】:
假设long int 是64 位类型的环境,假设我有一个long int = 0x0123456789ABCDEF,并且我想获取代表89 的字节。这条线可以工作吗?
n = (n >> (b << 3)) & 0xFF;
n 是long int,b 是我想要的字节。所以b 将是 3,将其向左移动 3 会将其乘以 8,将其更改为一个字节,因此移动应该看起来像这样 0x0123456789。使用 & 0xFF 是正确的掩码方式来获取最后一个字节吗?
【问题讨论】:
-
不能保证
long可以保持该值。请参阅How to Ask,提供minimal reproducible example。
标签: c bit-manipulation