标签: c# bit-manipulation overflow bit-shift
如果我有一个ushort变量0xFFAA并且我左移8位,我会得到一个整数而不是无符号短,为什么? 这张图片让你更清楚,我的意思是:
有没有办法从这个左移位获得一个16位变量而不将int转换为无符号短整数?
答案 0 :(得分:1)
如果要确保只设置变量的低16位,可以使用逻辑AND屏蔽0xFFFF:
0xFFFF
var supposed = (test << 8) & 0xFFFF;