日期:2014-05-17  浏览次数:20532 次

两个16位的数字怎么变成32位整数
就像C语言中的union
  其中一个16位数占32位的高16位,另外一个是低16位,
  不是 int1 | int2 这种的
 

------解决方案--------------------
a << 16 + b
=>
(a << 16) + b

仔细看了下,漏了一个括号。在a>32768的时候,符号位没有正确处理。

a * 65536 + b 则在任何情况下都是和你的一样的。