举例:
DWORD dwNum01 = 0xFFFFFFFE;
int Num02 = 10000;
ULONGLONG u64Res = dwNum01 * 10000 * 512;
此时,u64Res 的值并不是0xFFFFFFFE * 10000 * 512,而是
(0xFFFFFFFE * 10000 * 512)%0xFFFFFFFF,也就是说在这个赋值的过程中发生了溢出!
本文通过一个具体的代码示例,展示了在进行整数运算时可能会遇到的溢出问题,并解释了为什么会出现这种情况。该示例中使用了DWORD和ULONGLONG类型变量进行乘法运算,最终结果并非预期值,而是发生了取模操作。
举例:
DWORD dwNum01 = 0xFFFFFFFE;
int Num02 = 10000;
ULONGLONG u64Res = dwNum01 * 10000 * 512;
此时,u64Res 的值并不是0xFFFFFFFE * 10000 * 512,而是
(0xFFFFFFFE * 10000 * 512)%0xFFFFFFFF,也就是说在这个赋值的过程中发生了溢出!
5512

被折叠的 条评论
为什么被折叠?