Potrzebuję wziąć pary bajtów i wyjściowe szorty, i wziąć szorty i wyjściowe pary bajtów. Oto funkcje Wymyśliłem do tego celu:Dobry sposób na konwersję między krótkim i bajtów?
static short ToShort(short byte1, short byte2)
{
short number = (short)byte2;
number <<= 4;
number += (short)byte1;
return number;
}
static void FromShort(short number, out byte byte1, out byte byte2)
{
byte byte2 = (byte)(number >> 4);
short tempByte = (short)byte2 << 4;
byte byte1 = (byte)(number - tempByte);
}
myślę, że to jest poprawna, ale nie jestem pewien. Jeśli nie jest to właściwy sposób, co to jest? czy istnieje sposób, aby to zrobić już w ramach?
Trzeba przesunąć 8 bitów, a nie 4. –
Ciekawym rzeczy tutaj jest to, że w 'ToShort' byte1 jest MSB (tj. ten po lewej), gdzie-jak w' FromShort' byte1 jest LSB (tj. ten po prawej). Zmieniłem je w mojej odpowiedzi ;-p –