Finalizujemy wątek związany z konwersją systemów liczbowych i zabieramy się za system heksadecymalny. Zamienimy wspólnie system dziesiętny na szesnastkowy. W drugą stronę również. Nigdy nie wiadomo kiedy to się może przydać. Jeśli to nie ten system liczbowy Was interesuje, sięgajcie tutaj po tłumaczenie jak obchodzić się z liczbą binarną, a tutaj, ósemkową.
Tweet |
SYSTEM SZESNASTKOWY. KRÓTKIE OMÓWIENIE
Kolejny system przyjazny komputerowi to system szesnastkowy, znany też jako heksadecymalny. Jego podstawą jest liczba 16 (jak sama nazwa wskazuje), natomiast posiada nieco odmienny system zapisu liczb. Otóż, stosuje się litery od A do F zamiast liczb od 10 do 15! Zapamiętajcie to sobie raz na zawsze! Jest to o tyle istotna informacja, że litery te nie tylko pozwalają niemalże natychmiastowo zidentyfikować system szesnastkowy, ale również ich znajomość jest wymagana do wykonywania operacji konwertujących na inne systemy. Zastosowanie jest już dużo szersze od oktalnego omawianego dzisiaj rano tutaj. Najczęściej są widziane jako format dla koloru tekstu. Oprócz słowa kluczowego, wartości od 0 do 1 oraz przedziału od 0 do 255, można stosować również zapis heksadecymalny. Przedrostek "0x" to dla Was znak, że mamy do czynienia z liczbą w systemie szesnastkowym.
SYSTEM DZIESIĘTNY NA SZESNASTKOWY. METODY KONWERSJI
Ponownie sobie wyobrażamy, że dostaliśmy liczbę, na przykład taką:
607
i musimy ją skonwertować na system szesnastkowy. Jak to zrobić? Bardzo podobnie jak przy systemie oktalnym z delikatnymi różnicami. Znowu mamy dwa sposoby:
SYSTEM DZIESIĘTNY NA SZESNASTKOWY - METODA 1
Dzielimy liczbę dziesiętną przez szesnaście, a reszta ląduje po drugiej stronie. Ponownie zwracam uwagę na litery o których napisałem powyżej!!! Reszta może być od 0 do 15, a każda większa od 9, musi być zamieniona na odpowiednią literę alfabetu. Po lewej stronie tabelki rozpisujemy dzielenie liczby dziesiętnej, a po prawej stronie mają się znajdować reszty z dzielenia.
LICZBA DZIESIĘTNA | RESZTA Z DZIELENIA |
607 / 16 = 37,9375 | 15 = F |
37 / 16 = 2,3125 | 5 |
2 / 16 = 0,125 | 2 |
W pierwszym kroku reszta z dzielenia wyszła 15, ale nie możemy wstawić liczby, ponieważ składa się ona z dwóch cyfr, a musi reprezentować pojedynczy symbol. Zatem, zamieniamy 15 na odpowiednią literę zaczynając od A i liczby 10, czyli mamy F. Przy stosowaniu tej metody pamiętajcie, aby się nie wyłożyć przy spisywaniu wyniku, który musi iść od dołu. Wynik wygląda tak: 607(dec) = 25F(hex).
SYSTEM DZIESIĘTNY NA SZESNASTKOWY - METODA 2
Drugim sposobem jest ustalenie która najwyższa potęga liczby 16 "zmieści się" w zadanej liczbie dziesiętnej, a dzielnik (mianownik w ilorazie dla niekumatych) po każdym dzieleniu ma "spadać" o jedną potęgę w dół, aż do napotkania zera. Wynik całkowity to cyfra lub litera, a reszta z dzielenia staje się licznikiem w następnym dzieleniu. Rozumiem jeśli dwa poprzednie zdania nie dają szans na zrozumienie, dlatego zamieszczam kolejność postępowania.
Musimy wpierw zastanowić się nad tym, jaka najwyższa potęga liczby 16 "zmieści się" w naszej liczbie. Przy liczbie 607 to 256 spełnia te kryteria, czyli 162. Zapisujemy sobie coś takiego obok naszych późniejszych obliczeń:
162 = 256
Teraz wykonujemy dzielenie naszej liczby dziesiętnej przez 256, część całkowitą piszemy po drugiej stronie, a reszta staje się licznikiem następnego dzielenia:
607 / 162 = 607 / 256 = 2 reszty 95
Co każdy następny iloraz "zmniejszamy" mianownik o jedną potęgę liczby 16, czyli jak dzieliliśmy przez 256, to teraz musimy podzielić przez 16. Robimy coś takiego:
95 / 16 = 5 reszty 15
Przenosimy resztę z poprzedniego dzielenia do aktualnego "kroku", a mianownik "cofamy" do mniejszej potęgi (160). Wykonując ostatni krok otrzymujemy:
15 / 1 = 15 reszty 0
Spisując teraz normalnie z góry na dół otrzymujemy ten sam wynik: 25F(hex). Przypominam o zamianie piętnastki na literę F! Tak wygląda "tabelkowe" zestawienie naszych wysiłków:
DZIELENIE | WYNIK |
607 / 256 | 2 r 95 |
95 / 16 | 5 r 15 |
15 / 1 | 15 r 0 |
Koniec problemu. System dziesiętny na szesnastkowy zamieniony.
METODA KONWERSJI W DRUGĄ STRONĘ
I tym razem ucieknę się do przedstawienia tylko jednej metody, którą uważam za logiczną. Dysponujemy takim ciągiem:
A6E
a każdą osobną cyfrę czy literę zamieniamy na stosowne iloczyny przez 16 do odpowiedniej potęgi. Zanim zabierzemy się za dalszą część musimy najpierw zidentyfikować liczby kryjące się za literami:
A = 10
E = 14
Teraz patrzymy od prawej strony jak daleko dany znak jest "odsunięty" i ta odległość staje się wykładnikiem. Wygląda to tak:
A6E(hex) = 10*162 + 6*161 + 14*160 = 2560 + 96 + 14 = 2670
Wynika stąd, że A6E(hex) to 2670(dec).
Artykuł objaśniający zamienianie liczby dziesiętnej na system heksadecymalny dobiegł końca. Od tej pory temat powinien być dla Was dużo łatwiejszy do przyswojenia. Życzę zaliczenia kartkówki / sprawdzianu!