对于等于0xFFFF0000的int,设置位掩码最方便的方法是什么

本文关键字:掩码 方便 方法 是什么 置位 0xFFFF0000 int | 更新日期: 2023-09-27 18:21:53

由于某些原因,C#不想隐含地使用0xFFFF0000作为值,因为它高于int.MaxValue。我希望它可以以某种方式强制转换为相应的负值。

我必须做一些逐位操作,我想将int设置为0xFFFF0000,这与符号无关。

然而,这不会编译:

int leftmask = 0xFFFF0000;

错误为:

Error   1   Cannot implicitly convert type 'uint' to 'int'. An explicit conversion exists (are you missing a cast?) c:'....'Program.cs  127 28  

对于等于0xFFFF0000的int,设置位掩码最方便的方法是什么

正如您所说,默认情况下,该值不会"适合"整数,

如果你不关心语义,你可以强迫它:

int leftmask = unchecked((int)0xFFFF0000);

这将完成任务:

int leftmask = ~0xFFFF;