标签: c# bit-manipulation
为什么~(ushort)1返回值int的{{1}}?我认为-2值将是由于翻转的位而引起的,但其背后被隐式转换为int的原因是什么?
~(ushort)1
int
PS:我没有将其隐式转换为int。如果您写入控制台-2,则会打印出(~(ushort)1).GetType().ToString()。
-2
(~(ushort)1).GetType().ToString()
答案 0 :(得分:2)
ushort缺少按位运算符,与the docs中的int,uint,long和ulong不同。
ushort
uint
long
ulong
这样,在应用按位求反之前,ushort被提升为int。