Я работал над унаследованным приложением C ++ и определенно за пределами моей комфортной зоны (что хорошо). Мне было интересно, если кто-нибудь там будет так любезен, чтобы дать мне несколько советов (каламбур).
Мне нужно привести 2 байта в массиве без знака к короткому без знака. Байты являются последовательными.
Для примера того, что я пытаюсь сделать:
Я получаю строку из сокета и помещаю ее в массив без знака. Я могу игнорировать первый байт, а затем следующие 2 байта должны быть преобразованы в беззнаковый символ. Это будет только на окнах, поэтому нет проблем Big / Little 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])