我得到了两个字节:
我想把它们合在一起,形成一个浮点数值。所以结果应该是十进制的128和二进制的0000 0000 1000 0000。不是负数,因为有前导零。
到目前为止,我的解决方案是这样的:
byte[0]
是0000 0000
byte[1]
是1000 0000我想把它们合在一起,形成一个浮点数值。所以结果应该是十进制的128和二进制的0000 0000 1000 0000。不是负数,因为有前导零。
到目前为止,我的解决方案是这样的:
float f = (bytes[0] << 8 | bytes[1]);
但是这将导致值f的值为负128。我猜是因为2的补码。因此byte[1]
将被解释为负数。如何将byte[0]
的最高位视为正/负位?