1) Сдвигать надо не на 1,2 и 3, а на 8, 16 и 24 2) В my_val надо не присваивать очередной байт, а делать побитовое ИЛИ |
| Код | INT my_val = szBuff[4]; my_val << 8; my_val |= szBuff[5]; my_val << 16; my_val |= szBuff[6]; my_val << 24; my_val |= szBuff[7]; |
Однако, таким образом Вы получите INT в https://en.wikipedia.org/wiki/Endianness. Чтобы получить Little Endian, нужно помещать байты в обратном порядке:
| Код | INT my_val = szBuff[7]; my_val << 8; my_val |= szBuff[6]; my_val << 16; my_val |= szBuff[5]; my_val << 24; my_val |= szBuff[4]; |
А можно ещё сделать так:
| Код | INT my_val = *(INT*)( & szBuff[ 4 ] ); |
|