Chcesz dostać się do wartości 4-bitowych. Stąd przesunięcia powinny być wykonane także "ze skokiem" 4. Dla ostatniego nibble, będzie to przesunięcie maski 0xf o zero, dla przedostatniego 4 (masz w kodzie w komentarzu to opisane).
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeśli jednak chcesz dostać się do wartości już nie przesuniętej (w kodzie wyżej, wyniki to: 0x000d lub 0x00c0 lub 0x0b00 lub 0xa000, a chcesz mieć 0x000d, 0x000c, .... ), to operacja będzie nieco inna. Wartość należy przesunąć w prawo o ilość bitów (jak poprzednio nibble to 4 bity), i zamaskować z 0xf.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Warto formatować dane wyprowadzane. W funkcji printf(...), formatowanie oznacza "0x", 0 - uzupełnianie pola zerami, 4 - szerokość pola na 4 znaki, x - wartość wyświetlana hex