c#uint无法像在原生c中那样处理溢出



我有以下一段示例代码:

UInt16 a = 0x3A;
UInt16 b = 0xFFDF;
UInt16 result = Convert.ToUInt16(a - b);

第3行出现错误,出现Overflow异常。然而,我想获得相同的结果,就像我在C中减去2个无符号短路,它们上/下溢一样。

实现这一目标的最恰当方法是什么?

您可以按如下方式屏蔽较低的16位:

UInt16 result = Convert.ToUInt16((a - b) & 0xffff);

相关内容

  • 没有找到相关文章

最新更新