【问题标题】:C# bitwise shift on ushort (UInt16)ushort (UInt16) 上的 C# 按位移位
【发布时间】:2011-04-18 16:32:12
【问题描述】:

我需要对 16 位整数(ushort / UInt16)执行按位左移,但 C# 中的按位运算符似乎仅适用于 int(32 位)。如何在 ushort 上使用

【问题讨论】:

    标签: c# bit-manipulation bitwise-operators 16-bit


    【解决方案1】:

    在移位后将结果值转换回 ushort:

    ushort value = 1;
    ushort shifted = (ushort)(value << 2);
    

    【讨论】:

    • 对于&lt;&lt; 运算符,value 是否会隐式转换为 uint
    • 几乎令人尴尬,所以这就是:) 我做了几乎相同的事情,但忘记了 (value 周围的括号
    • @xtofl, value 将被隐式转换为 int。
    • @xtofl, int 正如@driis 所说。另请注意,在这种情况下,以及许多类似的情况下,结果都是一样的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多