小弟要将两个Int16数字组成Int32
Int16 a = -30 ;//1111 1111 1110 0010
Int16 b = -19456 ; //1011 0100 0000 0000
现在想把ab组合在一起成Int32(ab)//1111 1111 1110 0010 1011 0100 0000 0000
原本是想将两个都先ToInt32将a << 16 然后(a | b)
但现在发现负数Int16转Int32会将前面全部补1
b会变成1111 1111 1111 1111 1011 0100 0000 0000
但我想要的是0000 0000 0000 0000 1011 0100 0000 0000
也就是想要a|b结果是-1920000//11111111111000101011010000000000
但实际现在结果却是-19456 //11111111111111111011010000000000
请问这要如何解决?