Я работаю над унаследованным С++-приложением и, безусловно, вне зоны комфорта (хорошо). Мне было интересно, если кто-нибудь там будет так добр, чтобы дать мне несколько указателей (каламбур).
Мне нужно отбросить 2 байта в неподписанном массиве char к unsigned short. Байты являются последовательными.
Пример того, что я пытаюсь сделать:
Я получаю строку из сокета и помещаю его в массив без знака char. Я могу игнорировать первый байт, а затем следующие 2 байта должны быть преобразованы в unsigned char. Это будет только на окнах, поэтому нет проблем с большими/маленькими Endian (что я знаю).
Вот что я сейчас (не работает явно):
//packetBuffer is an unsigned char array containing the string "123456789" for testing
//I need to convert bytes 2 and 3 into the short, 2 being the most significant byte
//so I would expect to get 515 (2*256 + 3) instead all the code I have tried gives me
//either errors or 2 (only converting one byte
unsigned short myShort;
myShort = static_cast<unsigned_short>(packetBuffer[1])