Unia, dostęp do poszczególnych bajtów liczby, zamiana na hex

0

Witam,

Mam następujące zadanie: Muszę stworzyć unię anonimową, zawierającą pole typu int przechowujące liczbę oraz tablicę char przechowującą poszczególne bajty.

Z tym większych problemów nie miałem i wydaje mi się, że kod powinien wyglądać tak:

 
union {
     int liczba;
     char c[4];
};

Jednak z drugą częścią zadania nie wiem jak sobie poradzić, a brzmi ona: "utwórz metodą zamieniającą tablicę znakową na zapis hexadecymalny pola liczba". Metodę, ponieważ to wszystko zagnieżdżone jest w klasie, jednak to już jest mniej ważne.

Może mi ktoś coś podpowiedzieć bądź zarzucić przykładem? Z góry dziękuje za odpowiedź.

Pozdrawiam

0

Na oko powinno to wyglądać tak:

char* f(char *buf)
{ sprintf(buf, "%x%x%x%x", c[0], c[1], c[2], c[3]); } 
// chociaż tak naprawdę Little Endian sprawia że powinno być od c[3] do c[0].
// ale wykładowca tego może nie wiedzieć :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1