【问题标题】:c# uint to ushort overflow like in native Cc# uint 到 ushort 溢出,就像在本机 C 中一样
【发布时间】:2016-01-11 21:32:13
【问题描述】:

我有以下示例代码:

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

带有溢出异常的第 3 行错误。但是我想获得相同的结果,就像我会在 C 中减去 2 个无符号短裤并且它们上溢/下溢。

实现这一目标的最合适方法是什么?

【问题讨论】:

    标签: c# integer-overflow


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2013-01-16
    • 2012-05-14
    • 2011-02-27
    • 2023-03-31
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多