Uwaga 1
Jeśli chcesz przekonwertować liczbę z jednego systemu liczbowego na inny, wygodniej jest najpierw przekonwertować ją na system dziesiętny, a dopiero potem przekonwertować z systemu dziesiętnego na dowolny inny system liczbowy.
Zasady konwersji liczb z dowolnego systemu liczbowego na dziesiętny
W technologii komputerowej wykorzystującej arytmetykę maszynową ważną rolę odgrywa konwersja liczb z jednego systemu liczbowego na inny. Poniżej podajemy podstawowe zasady takich przekształceń (tłumaczeń).
Konwertując liczbę binarną na dziesiętną, należy przedstawić liczbę binarną jako wielomian, którego każdy element jest reprezentowany jako iloczyn cyfry liczby i odpowiedniej potęgi liczby podstawowej, w tym przypadku $2$, a następnie musisz obliczyć wielomian, korzystając z zasad arytmetyki dziesiętnej:
$X_2=A_n \cdot 2^(n-1) + A_(n-1) \cdot 2^(n-2) + A_(n-2) \cdot 2^(n-3) + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$
Rysunek 1. Tabela 1
Przykład 1
Konwertuj liczbę $11110101_2$ na system dziesiętny.
Rozwiązanie. Korzystając z podanej tabeli potęg $1$ podstawy $2$, przedstawiamy liczbę jako wielomian:
$11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 64 + 32 + 16 + 0 + 4 + 0 + 1 = 245_(10)$
Aby przekonwertować liczbę z systemu ósemkowego na dziesiętny, należy ją przedstawić w postaci wielomianu, którego każdy element jest przedstawiany jako iloczyn cyfry liczby i odpowiedniej potęgi liczby podstawowej, w tym przypadku przypadek $8$, a następnie musisz obliczyć wielomian zgodnie z zasadami arytmetyki dziesiętnej:
$X_8 = A_n \cdot 8^(n-1) + A_(n-1) \cdot 8^(n-2) + A_(n-2) \cdot 8^(n-3) + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$
Rysunek 2. Tabela 2
Przykład 2
Konwertuj liczbę $75013_8$ na system dziesiętny.
Rozwiązanie. Korzystając z podanej tabeli potęg $2$ podstawy $8, przedstawiamy liczbę jako wielomian:
$75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_(10)$
Aby przekonwertować liczbę z postaci szesnastkowej na dziesiętną, należy przedstawić ją jako wielomian, którego każdy element jest reprezentowany jako iloczyn cyfry liczby i odpowiedniej potęgi liczby podstawowej, w tym przypadku 16 $, a następnie musisz obliczyć wielomian zgodnie z zasadami arytmetyki dziesiętnej:
$X_(16) = A_n \cdot 16^(n-1) + A_(n-1) \cdot 16^(n-2) + A_(n-2) \cdot 16^(n-3) + . .. + A_2 \cdot 16^1 + A_1 \cdot 16^0$
Rysunek 3. Tabela 3
Przykład 3
Konwertuj liczbę $FFA2_(16)$ na system dziesiętny.
Rozwiązanie. Korzystając z podanej tabeli potęg $3$ podstawy $8, przedstawiamy liczbę jako wielomian:
$FFA2_(16) = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_(10)$
Zasady konwersji liczb z systemu dziesiętnego na inny
- Aby przekonwertować liczbę z systemu dziesiętnego na system binarny, należy ją kolejno podzielić przez 2 $, aż pozostała część będzie mniejsza lub równa 1 $. Liczbę w systemie binarnym przedstawia się jako ciąg ostatniego wyniku dzielenia i reszty z dzielenia w odwrotnej kolejności.
Przykład 4
Konwertuj liczbę $22_(10)$ na system liczb binarnych.
Rozwiązanie:
Rysunek 4.
$22_{10} = 10110_2$
- Aby przekonwertować liczbę z systemu dziesiętnego na ósemkowy, należy ją kolejno podzielić przez 8 USD, aż pozostała część będzie mniejsza lub równa 7 USD. Liczbę w systemie ósemkowym przedstawia się jako ciąg cyfr wyniku ostatniego dzielenia i reszty z dzielenia w odwrotnej kolejności.
Przykład 5
Zamień liczbę $571_(10)$ na system liczb ósemkowych.
Rozwiązanie:
Rysunek 5.
$571_{10} = 1073_8$
- Aby przekonwertować liczbę z systemu dziesiętnego na system szesnastkowy, należy ją sukcesywnie dzielić przez 16 $, aż pozostanie mniejsza lub równa 15 $. Liczba w systemie szesnastkowym jest reprezentowana jako ciąg cyfr wyniku ostatniego dzielenia i reszty dzielenia w odwrotnej kolejności.
Przykład 6
Konwertuj liczbę $7467_(10)$ na system liczbowy szesnastkowy.
Rozwiązanie:
Rysunek 6.
7467 $_(10) = 1D2B_(16)$
Aby zamienić ułamek właściwy z dziesiętnego systemu liczbowego na niedziesiętny system liczbowy, należy kolejno pomnożyć część ułamkową konwertowanej liczby przez podstawę systemu, na który ma zostać przeliczona. Ułamki w nowym systemie będą reprezentowane jako całe części produktów, zaczynając od pierwszej.
Na przykład: $0,3125_((10))$ w systemie liczb ósemkowych będzie wyglądać jak $0,24_((8))$.
W takim przypadku może wystąpić problem, gdy skończony ułamek dziesiętny może odpowiadać ułamkowi nieskończonemu (okresowemu) w systemie liczb niedziesiętnych. W takim przypadku liczba cyfr ułamka reprezentowanego w nowym systemie będzie zależała od wymaganej dokładności. Należy również zauważyć, że liczby całkowite pozostają liczbami całkowitymi, a ułamki właściwe pozostają ułamkami w dowolnym systemie liczbowym.
Zasady konwersji liczb z systemu binarnego na inny
- Aby przekonwertować liczbę z systemu binarnego na ósemkowy, należy ją podzielić na triady (potrójne cyfry), zaczynając od najmniej znaczącej cyfry, w razie potrzeby dodając zera do wiodącej triady, a następnie zastąpić każdą triadę odpowiednią cyfrą ósemkową zgodnie z tabelą 4.
Rysunek 7. Tabela 4
Przykład 7
Konwertuj liczbę $1001011_2$ na system liczb ósemkowych.
Rozwiązanie. Korzystając z Tabeli 4, konwertujemy liczbę z systemu binarnego na ósemkowy:
$001 001 011_2 = 113_8$
- Aby przekonwertować liczbę z systemu binarnego na szesnastkowy, należy ją podzielić na tetrady (cztery cyfry), zaczynając od cyfry najmniej znaczącej, w razie potrzeby dodając zera do tetrady najbardziej znaczącej, następnie każdą tetradę zastępując odpowiednią cyfrą ósemkową zgodnie z tabelą 4.
Wynik został już otrzymany!
Systemy liczbowe
Istnieją pozycyjne i niepozycyjne systemy liczbowe. Arabski system liczbowy, którego używamy w życiu codziennym, jest pozycyjny, ale rzymski system liczbowy nie. W systemach liczb pozycyjnych położenie liczby jednoznacznie określa wielkość liczby. Rozważmy to na przykładzie liczby 6372 w systemie dziesiętnym. Ponumerujmy tę liczbę od prawej do lewej, zaczynając od zera:
Następnie liczbę 6372 można przedstawić w następujący sposób:
6372=6000+300+70+2 =6,10 3 +3,10 2 +7,10 1 +2,10 0 .
Liczba 10 określa system liczbowy (w tym przypadku jest to 10). Wartości położenia danej liczby przyjmowane są jako potęgi.
Rozważmy rzeczywistą liczbę dziesiętną 1287,923. Numerujmy ją zaczynając od zera, położenie liczby od przecinka po lewej i prawej stronie:
Następnie liczbę 1287,923 można przedstawić jako:
1287,923 =1000+200+80 +7+0,9+0,02+0,003 = 1,10 3 +2,10 2 +8,10 1 +7,10 0 +9,10 -1 +2,10 -2 +3· 10 -3.
Ogólnie formułę można przedstawić w następujący sposób:
C rz S n +C n-1 · S n-1 +...+C 1 · S 1 +C 0 ·s 0 +D -1 ·s -1 +D -2 ·s -2 +...+D -k ·s -k
gdzie C n jest liczbą całkowitą na pozycji N, D -k - liczba ułamkowa na pozycji (-k), S- system liczbowy.
Kilka słów o systemach liczbowych Liczba w systemie dziesiętnym składa się z wielu cyfr (0,1,2,3,4,5,6,7,8,9), w systemie ósemkowym składa się z wielu cyfr. (0,1, 2,3,4,5,6,7), w systemie binarnym – ze zbioru cyfr (0,1), w systemie szesnastkowym – ze zbioru cyfr (0,1 ,2,3,4,5,6,7,8,9,A,B,C,D,E,F), gdzie A,B,C,D,E,F odpowiadają liczbom 10,11, 12,13,14,15. W tabeli Tab.1 liczby przedstawiono w różnych systemach liczbowych.
Tabela 1 | |||
---|---|---|---|
Notacja | |||
10 | 2 | 8 | 16 |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | mi | 15 | 1111 | 17 | F |
Konwersja liczb z jednego systemu liczbowego na inny
Aby przekonwertować liczby z jednego systemu liczbowego na inny, najłatwiej jest najpierw przekonwertować liczbę na system dziesiętny, a następnie dokonać konwersji z systemu dziesiętnego na wymagany system liczbowy.
Konwersja liczb z dowolnego systemu liczbowego na system dziesiętny
Korzystając ze wzoru (1), możesz przekonwertować liczby z dowolnego systemu liczbowego na system dziesiętny.
Przykład 1. Konwertuj liczbę 1011101.001 z systemu liczb binarnych (SS) na dziesiętny SS. Rozwiązanie:
1 ·2 6 +0 ·2 5 + 1 ·2 4 + 1 ·2 3 + 1 ·2 2 + 0 ·2 1 + 1 ·2 0 + 0 ·2 -1 + 0 ·2 -2 + 1 ·2 -3 =64+16+8+4+1+1/8=93,125
Przykład2. Konwertuj liczbę 1011101.001 z systemu liczb ósemkowych (SS) na dziesiętny SS. Rozwiązanie:
Przykład 3 . Konwertuj liczbę AB572.CDF z systemu liczb szesnastkowych na dziesiętny SS. Rozwiązanie:
Tutaj A-zastąpiony przez 10, B- o 11, C- o godzinie 12, F- do 15.
Konwersja liczb z systemu dziesiętnego na inny system liczbowy
Aby przekonwertować liczby z systemu dziesiętnego na inny system liczbowy, należy osobno przekonwertować część całkowitą liczby i część ułamkową liczby.
Część całkowitą liczby konwertuje się z dziesiętnego SS na inny system liczbowy poprzez kolejne podzielenie części całkowitej liczby przez podstawę systemu liczbowego (dla SS binarnego - przez 2, dla 8-arowego SS - przez 8, dla 16 -ary SS - o 16 itd.) aż do uzyskania całej reszty, mniejszej niż zasada CC.
Przykład 4 . Przekonwertujmy liczbę 159 z dziesiętnego SS na binarny SS:
159 | 2 | ||||||
158 | 79 | 2 | |||||
1 | 78 | 39 | 2 | ||||
1 | 38 | 19 | 2 | ||||
1 | 18 | 9 | 2 | ||||
1 | 8 | 4 | 2 | ||||
1 | 4 | 2 | 2 | ||||
0 | 2 | 1 | |||||
0 |
Jak widać z rys. 1, liczba 159 przy dzieleniu przez 2 daje iloraz 79, a reszta 1. Ponadto liczba 79 przy dzieleniu przez 2 daje iloraz 39 i resztę 1 itd. W efekcie konstruując liczbę z reszt z dzielenia (od prawej do lewej) otrzymujemy liczbę w formacie binarnym SS: 10011111 . Dlatego możemy napisać:
159 10 =10011111 2 .
Przykład 5 . Przekonwertujmy liczbę 615 z dziesiętnego SS na ósemkowy SS.
615 | 8 | ||
608 | 76 | 8 | |
7 | 72 | 9 | 8 |
4 | 8 | 1 | |
1 |
Konwertując liczbę z dziesiętnego SS na ósemkowy SS, należy kolejno dzielić liczbę przez 8, aż otrzymamy resztę całkowitą mniejszą niż 8. W rezultacie konstruując liczbę z reszt dzielenia (od prawej do lewej) otrzymujemy liczba ósemkowa SS: 1147 (patrz ryc. 2). Dlatego możemy napisać:
615 10 =1147 8 .
Przykład 6 . Przekonwertujmy liczbę 19673 z systemu dziesiętnego na szesnastkowy SS.
19673 | 16 | ||
19664 | 1229 | 16 | |
9 | 1216 | 76 | 16 |
13 | 64 | 4 | |
12 |
Jak widać z rysunku 3, dzieląc kolejno liczbę 19673 przez 16, reszty wynoszą 4, 12, 13, 9. W systemie liczb szesnastkowych liczba 12 odpowiada C, liczba 13 odpowiada D. Dlatego też nasz liczba szesnastkowa to 4CD9.
Aby zamienić zwykłe ułamki dziesiętne (liczbę rzeczywistą z zerową częścią całkowitą) na system liczbowy o podstawie s, należy sukcesywnie mnożyć tę liczbę przez s, aż część ułamkowa będzie zawierała czyste zero lub otrzymamy wymaganą liczbę cyfr . Jeżeli w wyniku mnożenia zostanie liczba, której część całkowita jest różna od zera, to ta część całkowita nie jest brana pod uwagę (są one kolejno uwzględniane w wyniku).
Spójrzmy na powyższe na przykładach.
Przykład 7 . Przekonwertujmy liczbę 0,214 z systemu dziesiętnego na binarny SS.
0.214 | ||
X | 2 | |
0 | 0.428 | |
X | 2 | |
0 | 0.856 | |
X | 2 | |
1 | 0.712 | |
X | 2 | |
1 | 0.424 | |
X | 2 | |
0 | 0.848 | |
X | 2 | |
1 | 0.696 | |
X | 2 | |
1 | 0.392 |
Jak widać na ryc. 4, liczbę 0,214 mnoży się kolejno przez 2. Jeżeli wynikiem mnożenia jest liczba z częścią całkowitą inną niż zero, wówczas część całkowitą zapisuje się osobno (po lewej stronie liczby), a liczba jest zapisywana z zerową częścią całkowitą. Jeżeli w wyniku mnożenia zostanie wygenerowana liczba posiadająca zerową część całkowitą, wówczas po jej lewej stronie wpisuje się zero. Proces mnożenia trwa aż część ułamkowa osiągnie czyste zero lub otrzymamy wymaganą liczbę cyfr. Zapisując pogrubione liczby (ryc. 4) od góry do dołu, otrzymujemy wymaganą liczbę w systemie liczb binarnych: 0. 0011011 .
Dlatego możemy napisać:
0.214 10 =0.0011011 2 .
Przykład 8 . Przekonwertujmy liczbę 0,125 z systemu dziesiętnego na binarny SS.
0.125 | ||
X | 2 | |
0 | 0.25 | |
X | 2 | |
0 | 0.5 | |
X | 2 | |
1 | 0.0 |
Aby przekonwertować liczbę 0,125 z dziesiętnego SS na binarny, liczbę tę mnoży się kolejno przez 2. W trzecim etapie wynikiem jest 0. W rezultacie otrzymuje się następujący wynik:
0.125 10 =0.001 2 .
Przykład 9 . Przekonwertujmy liczbę 0,214 z dziesiętnego systemu liczbowego na szesnastkowy SS.
0.214 | ||
X | 16 | |
3 | 0.424 | |
X | 16 | |
6 | 0.784 | |
X | 16 | |
12 | 0.544 | |
X | 16 | |
8 | 0.704 | |
X | 16 | |
11 | 0.264 | |
X | 16 | |
4 | 0.224 |
Idąc za przykładami 4 i 5, otrzymujemy liczby 3, 6, 12, 8, 11, 4. Ale w systemie szesnastkowym liczby 12 i 11 odpowiadają liczbom C i B. Dlatego mamy:
0,214 10 = 0,36C8B4 16 .
Przykład 10 . Przekonwertujmy liczbę 0,512 z systemu dziesiętnego na ósemkowy SS.
0.512 | ||
X | 8 | |
4 | 0.096 | |
X | 8 | |
0 | 0.768 | |
X | 8 | |
6 | 0.144 | |
X | 8 | |
1 | 0.152 | |
X | 8 | |
1 | 0.216 | |
X | 8 | |
1 | 0.728 |
Otrzymane:
0.512 10 =0.406111 8 .
Przykład 11 . Przekonwertujmy liczbę 159,125 z systemu dziesiętnego na binarny SS. Aby to zrobić, tłumaczymy osobno część całkowitą liczby (przykład 4) i część ułamkową liczby (przykład 8). Dalsze połączenie tych wyników otrzymujemy:
159.125 10 =10011111.001 2 .
Przykład 12 . Przekonwertujmy liczbę 19673.214 z systemu dziesiętnego na szesnastkowy SS. Aby to zrobić, tłumaczymy osobno część całkowitą liczby (przykład 6) i część ułamkową liczby (przykład 9). Ponadto, łącząc te wyniki, otrzymujemy.
W tym artykule opowiem Ci podstawy technologii komputerowej - jest to system binarny. To najniższy poziom, to są liczby, według których działa komputer. I dowiesz się, jak przenieść się z jednego systemu
Tabela 1 - Reprezentacja liczb w różnych systemach
rachunek różniczkowy (początek)
Systemy liczbowe |
||||
Dziesiętny |
Dwójkowy |
ósemkowy |
Szesnastkowy |
BCD |
Aby dokonać konwersji z systemu dziesiętnego na binarny, masz dwie możliwości.
1) Na przykład liczbę 37 należy przekonwertować z systemu dziesiętnego na system binarny, następnie podzielić ją przez dwa i sprawdzić pozostałą część dzielenia. Jeśli reszta jest nieparzysta, to zapisujemy jedynkę na dole i następny cykl dzielenia przechodzi przez liczbę parzystą; jeśli reszta dzielenia jest parzysta, zapisujemy zero. Na koniec musisz otrzymać 1. A teraz wynikowy wynik konwertujemy na binarny, a liczba przechodzi od prawej do lewej.
Krok po kroku: 37 to liczba nieparzysta, co oznacza 1 , wtedy 36/2 = 18. Liczba jest parzysta, co oznacza 0. 18/2 = 9 to liczba nieparzysta, co oznacza 1 , wtedy 8/2 = 4. Liczba jest parzysta, czytaj 0. 4/2 = 2, liczba parzysta oznacza 0, 2/2 = 1.
Więc mamy numer. Nie zapomnij policzyć od prawej do lewej: 100101 - teraz mamy liczbę w systemie binarnym. Ogólnie rzecz biorąc, jest to zapisywane jako dzielenie w kolumnie, jak widać na poniższym rysunku:
2) Ale jest drugi sposób. Bardziej go lubię. Transfer z jednego systemu do drugiego wygląda następująco:
gdzie ai jest i-tą cyfrą liczby;
k - liczba cyfr części ułamkowej liczby;
m - liczba cyfr części całkowitej liczby;
N jest podstawą systemu liczbowego.
Podstawa systemu liczbowego N pokazuje, ile razy „waga” i-tej cyfry jest większa od „wagi” (i-1) cyfry. Część całkowitą liczby oddziela się od części ułamkowej kropką (przecinkiem).
Część całkowitą liczby AN1 o podstawie N1 przekształca się na system liczbowy o podstawie N2, dzieląc kolejno część całkowitą liczby AN1 przez podstawę N2 zapisaną jako liczbę o podstawie N1, aż do uzyskania reszty otrzymaną część ponownie dzieli się przez zasadę N2 i proces ten należy powtarzać, aż cząstka stanie się mniejsza niż dzielnik. Resztę powstałą z dzielenia i ostatnią część zapisuje się w odwrotnej kolejności, jaką uzyskano podczas dzielenia. Wygenerowana liczba będzie liczbą całkowitą o podstawie N2.
Część ułamkową liczby AN1 o podstawie N1 przekształca się na system liczbowy o podstawie N2 poprzez kolejne pomnożenie części ułamkowej liczby AN1 przez N2 o podstawie zapisanej jako liczba o podstawie N1. Przy każdym mnożeniu część całkowitą iloczynu przyjmuje się w postaci kolejnej cyfry odpowiedniej cyfry, a część ułamkową pozostałej części przyjmuje się jako nowe mnożenie. Liczba mnożeń określa pojemność cyfr wynikowego wyniku, reprezentującą część ułamkową liczby AN1 w systemie liczbowym N2. Część ułamkowa liczby jest często przedstawiana niedokładnie podczas tłumaczenia.
Zróbmy to na przykładzie:
Konwersja z systemu dziesiętnego na binarny
Liczba 37 w systemie dziesiętnym musi zostać przekonwertowana na format binarny. Pracujmy ze stopniami:
2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1024 i tak dalej... w nieskończoność
Oznacza to: 37 - 32 = 5. 5 - 4 = 1. Odpowiedź jest następująca w formacie binarnym: 100101.
Zamieńmy liczbę 658 z postaci dziesiętnej na binarną:
658-512=146
146-128=18
18-16=2. W systemie binarnym liczba będzie wyglądać następująco: 1010010010.
Konwersja z postaci dziesiętnej na ósemkową
Jeśli chcesz dokonać konwersji z systemu dziesiętnego na ósemkowy, musisz najpierw dokonać konwersji na format binarny, a następnie dokonać konwersji z formatu binarnego na ósemkowy. Oznacza to, że w ten sposób jest łatwiej, chociaż możesz to od razu przetłumaczyć. Używanie algorytmu podobnego do tego przy konwersji na plik binarny, patrz wyżej.
Konwersja z systemu dziesiętnego na szesnastkowy
Jeśli chcesz dokonać konwersji z systemu dziesiętnego na szesnastkowy, musisz najpierw dokonać konwersji na system binarny, a następnie z formatu binarnego na szesnastkowy. Oznacza to, że w ten sposób jest łatwiej, chociaż możesz to od razu przetłumaczyć. Używanie algorytmu podobnego do tego przy konwersji na plik binarny, patrz wyżej.
Konwersja z binarnego na ósemkowy
Aby przekonwertować liczbę z postaci binarnej na ósemkową, należy podzielić liczbę binarną na trzy liczby.
Przykładowo otrzymaną liczbę 1010010010 dzielimy na trzy liczby, a dzielenie przebiega od prawej do lewej: 1 010 010 010 = 1222. Patrz tabela na samym początku.
Konwersja z systemu binarnego na szesnastkowy
Aby przekonwertować liczbę z postaci binarnej na szesnastkową, należy podzielić ją na tetrady (po cztery)
10 1001 0010 = 292
Oto kilka przykładów do przejrzenia:
Konwersja następuje z systemu binarnego na ósemkowy, następnie na szesnastkowy, a następnie z binarnego na dziesiętny
(2) = 11101110
(8) = 11 101 110 = 276
(16) = 1110 1110 = EE
(10) = 1*128+ 1*64+ 1*32+ 0 +1*8 + 1*4 + 1*2+ 0= 238
3) (8) = 657
Konwersja odbywa się z systemu szesnastkowego na binarny, następnie na ósemkowy, a następnie z binarnego na dziesiętny
(16) = 6E8
(2) = 110 1110 1000
(8) = 11 011 101 000 = 2250
(10) = 1*1024+1*512+ 0 +1*128+ 1*64+ 1*32+ 8 = 1768
Z systemem liczb binarnych spotykamy się studiując dyscypliny komputerowe. Przecież to na bazie tego systemu budowany jest procesor i niektóre rodzaje szyfrowania. Istnieją specjalne algorytmy zapisywania liczby dziesiętnej w systemie binarnym i odwrotnie. Jeśli znasz zasadę budowy systemu, operowanie w nim nie będzie trudne. Zasada konstruowania systemu zer i jedynekSystem liczb binarnych zbudowany jest z dwóch cyfr: zera i jedynki. Dlaczego akurat te liczby? Wynika to z zasady konstruowania sygnałów stosowanych w procesorze. Na najniższym poziomie sygnał przyjmuje tylko dwie wartości: fałsz i prawdę. Dlatego zwyczajowo oznaczano brak sygnału jako „fałszywy” przez zero, a jego obecność jako „prawdę” przez jeden. To połączenie jest łatwe do wdrożenia pod względem technicznym. Liczby w systemie binarnym tworzy się w taki sam sposób, jak w systemie dziesiętnym. Kiedy cyfra osiągnie górną granicę, jest resetowana do zera i dodawana jest nowa cyfra. Zasadę tę stosuje się do poruszania się po dziesiątce w systemie dziesiętnym. Zatem liczby składają się z kombinacji zer i jedynek, a kombinacja ta nazywana jest „systemem liczb binarnych”.
Jak zapisać liczbę binarną jako liczbę dziesiętną?Istnieją usługi online, które konwertują liczby na dane binarne i odwrotnie, ale lepiej jest móc to zrobić samodzielnie. Po przetłumaczeniu system binarny jest oznaczony indeksem dolnym 2, na przykład 101 2. Każdą liczbę w dowolnym systemie można przedstawić jako sumę liczb, na przykład: 1428 = 1000 + 400 + 20 + 8 - w systemie dziesiętnym. Liczba jest również reprezentowana w postaci binarnej. Weźmy dowolną liczbę 101 i rozważmy ją. Ma 3 cyfry, więc układamy liczbę w następujący sposób: 101 2 =1×2 2 +0×2 1 +1×2 0 =4+1=5 10, gdzie indeks 10 oznacza system dziesiętny. Jak zapisać liczbę pierwszą w systemie binarnym?Bardzo łatwo jest przejść na system binarny, dzieląc liczbę przez dwa. Konieczne jest dzielenie, aż będzie możliwe jego całkowite ukończenie. Weźmy na przykład liczbę 871. Zaczynamy dzielić, pamiętając o zapisaniu reszty: 871:2=435 (reszta 1) 435:2=217 (reszta 1) 217:2=108 (reszta 1) Odpowiedź zapisuje się zgodnie z otrzymanymi resztami w kierunku od końca do początku: 871 10 =101100111 2. Poprawność obliczeń możesz sprawdzić korzystając z opisanego wcześniej tłumaczenia odwrotnego. Dlaczego musisz znać zasady tłumaczenia?System liczb binarnych jest stosowany w większości dziedzin związanych z elektroniką mikroprocesorową, kodowaniem, transmisją danych i szyfrowaniem oraz w różnych obszarach programowania. Znajomość podstaw tłumaczenia z dowolnego systemu na plik binarny pomoże programiście opracować różne mikroukłady i programowo kontrolować działanie procesora i innych podobnych systemów. Binarny system liczbowy jest również niezbędny do wdrażania metod przesyłania pakietów danych kanałami szyfrowanymi i tworzenia na ich podstawie projektów oprogramowania klient-serwer. Na szkolnym kursie informatyki podstawy konwersji do systemu binarnego i odwrotnie są podstawowym materiałem do przyszłej nauki programowania i tworzenia prostych programów. Uwaga 1 Jeśli chcesz przekonwertować liczbę z jednego systemu liczbowego na inny, wygodniej jest najpierw przekonwertować ją na system dziesiętny, a dopiero potem przekonwertować z systemu dziesiętnego na dowolny inny system liczbowy. Zasady konwersji liczb z dowolnego systemu liczbowego na dziesiętnyW technologii komputerowej wykorzystującej arytmetykę maszynową ważną rolę odgrywa konwersja liczb z jednego systemu liczbowego na inny. Poniżej podajemy podstawowe zasady takich przekształceń (tłumaczeń). Konwertując liczbę binarną na dziesiętną, należy przedstawić liczbę binarną jako wielomian, którego każdy element jest reprezentowany jako iloczyn cyfry liczby i odpowiedniej potęgi liczby podstawowej, w tym przypadku $2$, a następnie musisz obliczyć wielomian, korzystając z zasad arytmetyki dziesiętnej: $X_2=A_n \cdot 2^(n-1) + A_(n-1) \cdot 2^(n-2) + A_(n-2) \cdot 2^(n-3) + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$ Rysunek 1. Tabela 1 Przykład 1 Konwertuj liczbę $11110101_2$ na system dziesiętny. Rozwiązanie. Korzystając z podanej tabeli potęg $1$ podstawy $2$, przedstawiamy liczbę jako wielomian: $11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 64 + 32 + 16 + 0 + 4 + 0 + 1 = 245_(10)$ Aby przekonwertować liczbę z systemu ósemkowego na dziesiętny, należy ją przedstawić w postaci wielomianu, którego każdy element jest przedstawiany jako iloczyn cyfry liczby i odpowiedniej potęgi liczby podstawowej, w tym przypadku przypadek $8$, a następnie musisz obliczyć wielomian zgodnie z zasadami arytmetyki dziesiętnej: $X_8 = A_n \cdot 8^(n-1) + A_(n-1) \cdot 8^(n-2) + A_(n-2) \cdot 8^(n-3) + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$ Rysunek 2. Tabela 2 Przykład 2 Konwertuj liczbę $75013_8$ na system dziesiętny. Rozwiązanie. Korzystając z podanej tabeli potęg $2$ podstawy $8, przedstawiamy liczbę jako wielomian: $75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_(10)$ Aby przekonwertować liczbę z postaci szesnastkowej na dziesiętną, należy przedstawić ją jako wielomian, którego każdy element jest reprezentowany jako iloczyn cyfry liczby i odpowiedniej potęgi liczby podstawowej, w tym przypadku 16 $, a następnie musisz obliczyć wielomian zgodnie z zasadami arytmetyki dziesiętnej: $X_(16) = A_n \cdot 16^(n-1) + A_(n-1) \cdot 16^(n-2) + A_(n-2) \cdot 16^(n-3) + . .. + A_2 \cdot 16^1 + A_1 \cdot 16^0$ Rysunek 3. Tabela 3 Przykład 3 Konwertuj liczbę $FFA2_(16)$ na system dziesiętny. Rozwiązanie. Korzystając z podanej tabeli potęg $3$ podstawy $8, przedstawiamy liczbę jako wielomian: $FFA2_(16) = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_(10)$ Zasady konwersji liczb z systemu dziesiętnego na inny
Przykład 4 Konwertuj liczbę $22_(10)$ na system liczb binarnych. Rozwiązanie: Rysunek 4. $22_{10} = 10110_2$
Przykład 5 Zamień liczbę $571_(10)$ na system liczb ósemkowych. Rozwiązanie: Rysunek 5. $571_{10} = 1073_8$
Przykład 6 Konwertuj liczbę $7467_(10)$ na system liczbowy szesnastkowy. Rozwiązanie: Rysunek 6. 7467 $_(10) = 1D2B_(16)$ Aby zamienić ułamek właściwy z dziesiętnego systemu liczbowego na niedziesiętny system liczbowy, należy kolejno pomnożyć część ułamkową konwertowanej liczby przez podstawę systemu, na który ma zostać przeliczona. Ułamki w nowym systemie będą reprezentowane jako całe części produktów, zaczynając od pierwszej. Na przykład: $0,3125_((10))$ w systemie liczb ósemkowych będzie wyglądać jak $0,24_((8))$. W takim przypadku może wystąpić problem, gdy skończony ułamek dziesiętny może odpowiadać ułamkowi nieskończonemu (okresowemu) w systemie liczb niedziesiętnych. W takim przypadku liczba cyfr ułamka reprezentowanego w nowym systemie będzie zależała od wymaganej dokładności. Należy również zauważyć, że liczby całkowite pozostają liczbami całkowitymi, a ułamki właściwe pozostają ułamkami w dowolnym systemie liczbowym. Zasady konwersji liczb z systemu binarnego na inny
Rysunek 7. Tabela 4 Przykład 7 Konwertuj liczbę $1001011_2$ na system liczb ósemkowych. Rozwiązanie. Korzystając z Tabeli 4, konwertujemy liczbę z systemu binarnego na ósemkowy: $001 001 011_2 = 113_8$
|