对于等于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
正如您所说,默认情况下,该值不会"适合"整数,
如果你不关心语义,你可以强迫它:
int leftmask = unchecked((int)0xFFFF0000);
这将完成任务:
int leftmask = ~0xFFFF;