Проблема при кодировании данных

76
21 ноября 2021, 23:20
unsigned char *writeInt(int v)
{
    static unsigned char lol[4];
    lol[0] = (((v >> 24) & 0xFF));
    lol[1] = (((v >> 16) & 0xFF));
    lol[2] = (((v >>  8) & 0xFF));
    lol[3] = (((v      ) & 0xFF));
    return lol;
}
int readInt(unsigned char i[])
{
    return (
            ((i[0] << 24) & 0xFF) |
            ((i[1] << 16) & 0xFF) |
            ((i[2] <<  8) & 0xFF) |
             (i[3]        & 0xFF));
}
int main()
{
    std::cout << readInt(writeInt(10)) << std::endl;
    return 0;
}

Таким образом кодирую int, но при декоде большие числа не корректно отображаются. Пример в данном случае возвращает 10, но возьму число 10000 мне возвращает 16.

READ ALSO
Ошибка компиляции C++ кода с Irrlicht библиотекой

Ошибка компиляции C++ кода с Irrlicht библиотекой

Я скомпилировал отдельно исходники Irrlicht (в source каталоге), затем создал Makefile где будет уже компилироваться мой файл на C++ и затем компоноваться...

145
Вместо пробела, вставляет другой символ

Вместо пробела, вставляет другой символ

Данный код шифрует шифром ВиженераПодключаю в основную программу из dll библиотеки

368
Как сделать вторичный поток с постоянный жизненным циклом и управлением

Как сделать вторичный поток с постоянный жизненным циклом и управлением

Имеется объект, который живёт в другом потоке и выполняет различные задачи по запросам или выполняет повторяющиеся задачи

173
GUI WinAPI Directory

GUI WinAPI Directory

Как называется элемент интерфейса пользователя, который позволяет выбрать путь к файлу или директорию? Такой же элемент, который при установке...

95