【发布时间】:2016-07-14 01:00:42
【问题描述】:
假设我想将 uint32_t 的低 16 位存储在 windows 上的 uint16_t 中,我也可以这样做
uint32_t value = 123456789;
uint16_t low1 = value; //like this
uint16_t low2 = value & 0xFFFF; //or this
结果似乎没有区别,但我找不到任何明确说明这是已定义行为的文档。在情况 X 或 Y 下会有所不同吗?还是这就是它的工作原理?
【问题讨论】:
-
高位总是被截断,不需要屏蔽
-
@LưuVĩnhPhúc:您链接到的问题涉及有符号整数。这个问题是关于无符号整数的。规则不同。
标签: c++