出于某种原因,我根本不理解(或不明白)为什么这是有效的:
UInt32 a = 0x000000FF;
a &= ~(UInt32)0x00000001;
但这并没有:
UInt16 a = 0x00FF;
a &= ~(UInt16)0x0001;
它给出错误“常量值 -(某些数字)无法转换为 UInt16”。有人可以解释为什么会这样以及如何解决这个问题吗?
按位求反将结果提升为int
,尽管演员阵容。您可以通过将按位求反的结果按位与低 16 位来克服这个问题,如下所示:~0x0001 & 0xFFFF
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)