我正在使用将int作为输入参数的第三方服务器。但是,当查询我再次写入的值时,它似乎使用数字的最左位作为符号..所以将1000 ... 0(16位)返回为-32768,将返回11000 ... 0 -16384,等等。
鉴于Java不懂uint,我正在寻找一种有效的方法将负数转换为正确的正数(第一个为2 ^ 15,第二个为2 ^ 15 + 2 ^ 24 ,依此类推)。
答案 0 :(得分:0)
对于无符号16位值,您可以屏蔽掉高位
x &= 0xFFFF;
对于无符号的32位值,您可以使用长
long l = x & 0xFFFFFFFFL;