ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1042327 Топик полностью
fk0, легенда (06.10.2020 02:34, просмотров: 286) ответил Aleksey_75 на "помедленнее пжалуйста я зыписываю" (с) и где здесь переменная в 3 байта ?? а уж как работать с такими криптоваными данными вообще ужас.. чтоб получить один индекс расшифруй 100500 байт
В первом варианте между b и c была дырка в три байта (на арме). Во втором никаких дыр нет. Конечно 3-байтную переменную в C не сделать, но можно эмулировать: 
unsigned char byte1[100500];
unsigned char byte2[100500];
unsigned char byte3[100500];

unsigned get_value(unsigned index)
{
    return byte1[index] + byte2[index] << 8 + (unsigned long)byte3[index] << 16;
}

void set_value(unsigned index, unsigned value)
{
    byte1[index] = value, byte2[index] = value >> 8, byte3[index] = value >> 16;
}
[ZX]