Login lub e-mail Hasło   

Konwersje systemów liczbowych

Odnośnik do oryginalnej publikacji: http://www.forum.tweaks.pl/Konwersje-sys(...)t29888/
Dawny artykuł przywrócony z martwych, przyda się.
Wyświetlenia: 1.713 Zamieszczono 05/06/2013

Poruszymy sprawę przejścia pomiędzy podstawowymi postaciami ww. systemów, czyli dziesiętnego (D), dwójkowego (B), szesnastkowego (H) i oktalnego (O). Podstawowymi dlatego, że przykładowo system dwójkowy ma kilka odmian (1 z n, kod U2 itp.) z czego najczęściej używany jest NB (naturalny binarny). Rzecz jakich pełno w sieci, ale spróbuję to wytłumaczyć według mojego rozumienia, przy nabraniu drobnej wprawy można konwertować w pamięci liczby do tysiąca. W Internecie można również znaleźć gotowe kalkulatory (nawet windowsowy ma takie opcje), ale te podstawy warto umieć będąc odciętym od sieci, tudzież ucząc się w technikum elektronicznym.
Przejdźmy więc przez kolejne systemy liczbowe. Zakładam że każdy czytając ten artykuł orientuje się chociaż po części jak dane kody wyglądają. W nawiasach będą znajdowały się rodzaje systemów

Konwersja DEC -> BIN.

Całość sprowadza się do tego, że wybraną liczbę dzielimy na 2, za każdym razem zapisując reszty (wyniki dzielenia zaokrąglamy w dół do postaci całkowitej). Dla przykładu weźmy sobie liczbę 69:

69/2=34 r=1
34/2=17 r=0
17/2=8 r=1
8/2=4 r=0
4/2=2 r=0
2/2=1 r=0
1/2=0 r=1 dzielimy do momentu dzielenia 1/2.

Teraz wszystkie reszty zapisujemy odczytując je od dołu, czyli mamy 1000101(B). Jak sprawdzić czy wynik jest prawidłowy? W systemie dwójkowym każde zero lub jedynka ma swoją wagę, wynoszącą 2^n, gdzie n jest pozycją liczby licząc od prawej (począwszy od zera). Jeżeli nasza otrzymana liczba ma 7 bitów, wiemy że możemy na niej rozpisać 128 kombinacji zer i jedynek (2^7). Wracając do sprawdzenia – interesują nas tylko pozycje gdzie pojawiła się jedynka, czyli pierwsza, trzecia i siódma. Pamiętając o tym że wykładniki pozycji liczymy od zera mamy:
2^0 + 2^2 + 2^6 = 1 + 4 + 64 = 69(D)

Konwersja BIN -> HEX


Zanim rozpoczniemy przeliczanie należy wiedzieć, że system heksadecymalny poza podstawami od 0 do 9 korzysta jeszcze z liter od A do F, które odpowiadają dalszej numeracji następującej po dziewiątce, czyli A=10, aż do F=15. Jak to się ma do systemu dwójkowego? Znając już jego zasady wiemy, że:
0000(B)=0(H)
...
1001(B)=9(H)
1010(B)=A(H)
...
1111(B)=F(H)
Zamienimy teraz naszą liczbę 69 na jej postać szesnastkową. Wykorzystamy zapis dwójkowy który przed chwilą został stworzony, czyli 1000101. Jak dokonać przekształcenia? Rozdzielimy sobie naszą liczbę na kawałki o czterech pozycjach każdy, dzieląc oczywiście od prawej. Mamy więc:
100 | 0101 (jeżeli porcja od lewej ma mniej niż 4 pozycje, brakujące możemy zastąpić zerami)
Teraz każdą „porcję” zamieniamy na jej szesnastkowy odpowiednik. 100(B) to 4(H), a 0101(B) to 5(H). Nasza dziesiętna liczba 69 w systemie heksadecymalnym wynosi więc 45.

Konwersja BIN -> OCT

Zamieniając 69(D) na jej oktalną postać, najłatwiej skorzystać jest z jej dwójkowego odpowiednika. Wykonamy wtedy działanie podobne do zamiany BIN -> HEX. Co jest charakterystyczne dla tego systemu? System ten posługuje się 8 cyframi, czyli od 0 do 7. Jako że w systemie dwójkowym liczba 7(D) wynosi 111(B), liczbę 1000101 podzielimy w następujący sposób:
1 | 000 | 101
Odczytując kolejne cyfry znaną nam już metodą mamy:
1(B)=1(O)
000(B)=0(O)
101(B)=5(O)
Dziesiętna liczba 69 to w zapisie ósemkowym 105.

Wszystkie te mechanizmy działają również w drugą stroną według analogicznych zasad, zapewniam przy tym że te trzy algorytmy wystarczą do swobodnego przemieszczania się pomiędzy systemami. Myślę że chociaż po trochu rozjaśniłem trudy konwersji, pomijając liczby zmiennoprzecinkowe, których omówienie mogłoby zająć nam nieco więcej czasu.

Podobne artykuły


158
komentarze: 114 | wyświetlenia: 71949
71
komentarze: 38 | wyświetlenia: 168435
59
komentarze: 26 | wyświetlenia: 14599
45
komentarze: 12 | wyświetlenia: 42184
33
komentarze: 12 | wyświetlenia: 19434
32
komentarze: 10 | wyświetlenia: 6736
29
komentarze: 9 | wyświetlenia: 5124
29
komentarze: 11 | wyświetlenia: 16713
26
komentarze: 24 | wyświetlenia: 7370
27
komentarze: 10 | wyświetlenia: 2266
22
komentarze: 6 | wyświetlenia: 68015
21
komentarze: 7 | wyświetlenia: 4372
21
komentarze: 11 | wyświetlenia: 33282
20
komentarze: 7 | wyświetlenia: 4987
20
komentarze: 8 | wyświetlenia: 5615
 
Autor
Artykuł



Wskrzeszanie jak najbardziej, tylko... Już myślałam, że o Panu Bogusiu poczytam cosik, a ten tu z konwersją wyleciał... ;)

  ykes,  05/06/2013

@Skalny Kwiat: Chyba już ostatnio obiecywałem, że kiedyś się pojawi ;)

  jotko49,  05/06/2013

@Skalny Kwiat: Świstek od rana ma dyżur, więc na życzenie wskrzesi Ci jakieś objawionko gratis...A tu tylko całuska załapałaś. :))

@jotko49: Niech będzie i całusek, a ty Ykesiu do roboty się weź i za pióro, a nie jakieś odgrzewane kotlety nam tu serwujesz ;)

  ykes,  06/06/2013

Kwiatku, to wszystko jest bardzo miłe, ale ja po prostu nie mam nic ciekawego do napisania... ;)

@ykes: Akurat w to uwierzę... Bierz się za kolejną odsłonę Pana Bogusia, boś obiecał :)

  Amicus,  06/06/2013

"Zakładam że każdy czytając ten artykuł orientuje się chociaż po części jak dane kody wyglądają."
Ykes, to się nazywa optymizm! :))

@Amicus: Ja nie wiem, ale Lubię Ykesia, więc protekcjonalnie ten artykuł potraktowałam, hehe ;) I znowu mnie ktoś minusuje - przynajmniej wiem, że żyję:)

  Amicus,  06/06/2013

@Skalny Kwiat: Odminusowane ;)
Ja też go lubię, ale to pierwszy jego artykuł, z którego kompletnie nic nie rozumiem :))

  ykes,  06/06/2013

@Amicus: To fundamenty fundamentów informatyki i pokrewnych. Od dawna się tym nie zajmuję, ale przeglądając moje usunięte arty stwierdziłem, że ten jest czegoś wart. ;)

  Amicus,  10/06/2013

@ykes: Dobry art tynfa wart! Niestety chwilowo jestem bez... tynfa przy duszy ;)

  ykes,  10/06/2013

@Amicus: Poradzimy jakoś i bez. ;) Następny art już za rok. ;)

Ykes , z matury mialem z matmy naciagane 3...
Wygrzebales mi z szafy moje stare kompleksy...
Nie wybacze Ci tego ale na zlosc mojejmu belfrowi z tego przedmiotu na Ciebie zaglosuje...

  grazaa,  07/06/2013

A o tym też można pisać...? Systemy liczbowe to moja... codzienność, ale miło jest popatrzeć na nie tutaj... na eiobie :)

  ykes,  07/06/2013

Grazaa, ten segment Eioby jest niestety dosyć zaniedbany...

@ykes: Zaniedbany? Może trochę...
System trójkowy.
45 / 3 = 15 reszty 0
15 / 3 = 5 reszty 0
5 / 3 = 1 reszty 2
1 / 3 = 0 reszty 1
Zapisujemy liczbę jako kolejne reszty od dołu. Czyli wynik to 1 2 0 0
Sprawdzenie: 1x27 + 2x9 + 0x3 +0x1 =17+18 = 45

:Jak mi poszło? :)

  ykes,  07/06/2013

@Robert Molnar: Wręcz fatalnie. ;)

  Amicus,  07/06/2013

@ykes: To 17 plus 18 nie jest 215? Już dwa razy sumowałem słupek i tak samo mi wyszło... Zaraz, zaraz... gdzie się podział ten cholerny kalkulator?
;))

@Amicus: A po co ci kalkulator? Już wszystko policzyłem, a że była przy tym butelka Tokaju, to wyszło jak wyszło. :)))

  Amicus,  07/06/2013

@Robert Molnar: A moja suma jest większa! A to znaczy, że niepasteryzowane z małego lokalnego browaru jest lepsze niż przesławny tokaj, o!
;)

@Amicus: Taaak? Nie ma sprawy, dokończę sam. :)))

  Amicus,  07/06/2013

@Robert Molnar: Ja też, o!
;):)

  grazaa,  09/06/2013

@ykes: Przyznam, że... pisałam już o tym i innych takich, ale nie tutaj. Z tymi systemami jest nawet fajna zabawa, bo przecież jak to możliwe, aby 33+33 miało wiele wyników... 66, 110, 121, 132... Fajniutkie :)))

  ryh,  07/06/2013

17+18=45 ...całkiem nieźle Ci poszło.]:-)

@ryh: Nie ma co, wracam do szkoły. :(

  ryh,  07/06/2013

@Robert Molnar: Robercie, nie marnuj czasu na pierdoły....zostań ministrem finansów.

@ryh: NIe mogę, nie znam się na kreatywnej księgowości! :P

  ryh,  07/06/2013

@Robert Molnar: Toż udowodniłeś że jednak się na tym znasz.]:-)

@ryh: Mimo wszystko to jest jeszcze za mało. Może Ty spróbujesz? W razie czego moje poparcie masz!

  Amicus,  07/06/2013

Cześć Liwa! ;)

  jotko49,  07/06/2013

@Amicus: Na refleksie Ci nie zbywa, więc ciesz się że na razie litościwa. :))

Litościwa Liwa? Toż to aksjomat!

  Amicus,  07/06/2013

@Robert Molnar@jotko49: Wbrew pozorom nie jestem aż taki słaby z matematyki, a już dodawanie i odejmowanie w zakresie 1-10 opanowane mam do perfekcji ;)



Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2018 grupa EIOBA. Wrocław, Polska