Je dois prendre des paires d'octets dans et court-circuiter des sorties, et prendre des courts-circuits dans et sortir des paires d'octets. Voici les fonctions que j'ai conçu à cette fin:Bon moyen de convertir entre court et octets?
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);
}
Je pense que cela est correct, mais je ne suis pas sûr. Si ce n'est pas la bonne façon de le faire, qu'est-ce que c'est? existe-t-il un moyen de le faire déjà dans le cadre?
Vous devez déplacer 8 bits, pas 4. –
Une des choses intéressantes ici est que dans 'ToShort' byte1 est le MSB (c'est-à-dire celui de gauche), où -comme dans' FromShort' byte1 est le LSB (c'est-à-dire celui de droite). J'ai changé ces derniers dans ma réponse ;-p –