Necesito tomar pares de bytes y salir cortos, y tomar cortos y salir pares de bytes. Estas son las funciones que he ideado para tal fin:¿Una buena forma de convertir entre short y bytes?
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);
}
Creo que esto es correcto, pero no estoy seguro. Si esta no es la forma correcta de hacerlo, ¿qué es? ¿Hay alguna forma de hacerlo en el marco?
Es necesario cambiar de 8 bits, no –
4. Un cosas interesantes aquí es que en 'ToShort' byte1 es el MSB (es decir, el de la izquierda), donde-como en' FromShort' byte1 es el LSB (es decir, el de la derecha). He cambiado esto en mi respuesta ;-p –