Я попытался преобразовать массив байтов в длинный
long readAndSkipLong(char*& b)
{
unsigned long ret = (b[0] << 56) | (b[1] << 48) | (b[2] << 40) | (b[3]<<32) | (b[4] << 24) | (b[5] << 16) | (b[6] << 8) | (b[7]);
return ret;
}
Мое переключение кажется неправильным. По предполагаемой стоимости
152 --> 00000000 00000000 00000000 00000000 00000000 00000000 00000000 10011000
Я получил:
-104 --> 11111111 11111111 11111111 11111111 11111111 11111111 11111111 10011000
Есть идеи, где ошибка?