我有以下示例代码:
UInt16 a = 0x3A;
UInt16 b = 0xFFDF;
UInt16 result = Convert.ToUInt16(a - b);
第 3 行出现溢出异常的错误。但是我想获得相同的结果,就像我在 C 中减去 2 个无符号短裤并且它们溢出/下溢。
实现这一目标的最合适方法是什么?
最佳答案
您可以按如下方式屏蔽低 16 位:
UInt16 result = Convert.ToUInt16((a - b) & 0xffff);
关于c# uint 到 ushort 溢出,就像在 native C 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34731489/