Liczba zapisana szesnastkowo a typ uint32

0

Witam mam do zrobienia następujące zadanie:
// funkcja która zwróci określoną liczbę bitów z przesunięciem
uint32 GetBitsFromUint32(uint32 inputValue, uint8 bitOffset, uint8 bitLength);

 //przykładowo:
 uint32 res = GetBitsFromUint32(0xABCDEF12, 4, 12);
 // wynikiem res będzie: res = 0x00000EF1;

Jeśli res jest typu uint32 (zakres to liczby całkowite od 0 to 4,294,967,295) to jak mam przedstawić w tym typie danych litery, które są zapisem szesnastkowym np. EF?
Podsyłamy do funkcji 0xABCDEF12 która też jest typem uint32 (inputValue).
Proszę o pomoc

4

Weź odpal kalkulator w Windows, wybierz tryb programisty i w pole hex wpisz EF:
screenshot-20220910123903.png
Poczytaj o operacjach bitowych oraz systemach zliczania.
auto GetBitsFromUint32 = [](uint32_t V,unsigned S,unsigned L) { return (V>>S)&((1UL<<L)-1); };

1
bartosz1986 napisał(a):

Proszę o pomoc

A co już zrobiłeś sam?

0

Tak, udało się zrobić to zadanie dziękuję za pomoc

0

Brawo !
Już jesteś programistą !

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