0

如何在不使用无符号标记的情况下修改 ANSI C 中的以下行?

unsigned int x, y, z; // unsigned variables should not be used
/*... some operations where x, y and z gets values between 0x0 and 0xFFFFFFFF ... */
x = (unsigned int)-(int)(y * z); // line to modify
4

1 回答 1

2

您可以直接将否定应用于无符号值。结果将以 2^N 为模减少,这就是您现有代码的作用。

x = -(y * z);
于 2015-03-30T18:22:37.710 回答