Zdravím, potřebuji nějakým způsobem uložit přijatý řetězec odpovídacící hexa tvaru do struktury. Vysvětlím to na příkladu.
Mám strukturu
struct
{
uint8_t N;
uint8_t M;
uint16_t V1;
uint16_t V2;
uint16_t V3;
} Item;
a přijatá data ve tvaru "01023C983C973C96".
Výsledek by měl být N = 0x01; M = 0x02; V1 = 0x3C98; V2 = 0x3C97; V3 = 0x3C96.
Převést ASCI HEX na HEX je snadný, jak ale roztřídím ty data, aniž bych použil pevné indexy řetězce? Struktura má ve skutečnosti 60 prvků, a je to směs 8 a 16 bitů.
Napadlo mě využít union a 8bit pole se stejnou šířkou jako je struktura. Bohužel ale bitová orientace není 1:1. Mám prohozený horní byte se spodním. Obsah N a M je v pořádku, ale ve V1 je 0x983C. Má C++ nějaký lepší nástroj na procházení prvků struktury?