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

时间:2014-09-14 17:56:26

标签: c# bitmask

出于某种原因,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  

2 个答案:

答案 0 :(得分:3)

这样可以解决问题:

int leftmask = ~0xFFFF;

答案 1 :(得分:3)

好吧,正如你所说,这个价值不会适应"默认为整数,

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

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