c#uint无法像在原生c中那样处理溢出
本文关键字:处理 溢出 原生 c#uint | 更新日期: 2023-09-27 18:29:55
我有以下一段示例代码:
UInt16 a = 0x3A;
UInt16 b = 0xFFDF;
UInt16 result = Convert.ToUInt16(a - b);
第3行出现错误,出现Overflow异常。然而,我想获得相同的结果,就像我在C中减去2个无符号短路,它们上/下溢一样。
实现这一目标的最恰当方法是什么?
您可以按如下方式屏蔽较低的16位:
UInt16 result = Convert.ToUInt16((a - b) & 0xffff);