两个16位的数字怎么变成32位整数
就像C语言中的union
其中一个16位数占32位的高16位,另外一个是低16位,
不是 int1 | int2 这种的
[解决办法]
a << 16 + b
=>
(a << 16) + b
仔细看了下,漏了一个括号。在a>32768的时候,符号位没有正确处理。
a * 65536 + b 则在任何情况下都是和你的一样的。
发布时间: 2012-05-28 17:59:33 作者: rapoo
两个16位的数字怎么变成32位整数
就像C语言中的union
其中一个16位数占32位的高16位,另外一个是低16位,
不是 int1 | int2 这种的
[解决办法]
a << 16 + b
=>
(a << 16) + b
仔细看了下,漏了一个括号。在a>32768的时候,符号位没有正确处理。
a * 65536 + b 则在任何情况下都是和你的一样的。