我有两个字节的数据。我将它们中的每一个都转换为 Uint8,然后我从它们中生成了一个 Uint16。
我怎样才能产生这个 Uint16 数字的二进制补码?
我已经尝试过uInt16 = ~uInt16 + 1
,但代码会产生 32 位整数,我希望它保持 16 位整数。
byte firstByte, secondByte;
int firstUint8, secondUint8, uInt16;
firstByte = buffer[index];//get first byte from buffer
secondByte = buffer[index + 1];//get second byte from buffer
firstUint8=firstByte & 0xFF;//produce Uint8
secondUint8 = secondByte & 0xFF;//produce Uint8
uInt16 = 256 * firstUint8 + secondUint8;//create Uint16 from these to Uint8
twosComplementOfUInt16=~number+1; //produce 32 bit integer but I want int16