Komputery ze współczesnym światem

19 binarnie. Tłumaczenie liczb w pozycyjnych systemach liczbowych

System liczb binarnych wykorzystuje tylko dwie cyfry 0 i 1. Innymi słowy, dwójka jest podstawą systemu liczb binarnych. (Podobnie system dziesiętny ma podstawę 10.)

Aby dowiedzieć się, jak rozumieć liczby w systemie dwójkowym, najpierw zastanów się, jak powstają liczby w znanym nam systemie dziesiętnym.

W systemie liczb dziesiętnych mamy dziesięć cyfr (od 0 do 9). Kiedy liczba osiągnie 9, wprowadzana jest nowa cyfra (dziesiątki), jednostki są resetowane do zera i odliczanie zaczyna się od nowa. Po 19 cyfra dziesiątek jest zwiększana o 1, a jedynki są ponownie ustawiane na zero. I tak dalej. Kiedy dziesiątki osiągną 9, pojawia się trzecia cyfra - setki.

System liczb binarnych jest podobny do systemu dziesiętnego, z tą różnicą, że w tworzeniu liczby biorą udział tylko dwie cyfry: 0 i 1. Gdy tylko bit osiągnie swoją granicę (tj. jedynkę), pojawia się nowy bit i stary jest resetowany.

Spróbujmy policzyć w systemie dwójkowym:
0 to zero
1 to jeden (i to jest limit rozładowania)
10 to dwa
11 to trzy (i to znowu limit)
100 to cztery
101 - pięć
110 - sześć
111 - siedem itd.

Konwersja liczb z binarnego na dziesiętny

Nietrudno zauważyć, że w systemie liczb binarnych długości liczb szybko rosną wraz ze wzrostem wartości. Jak ustalić, co to znaczy: 10001001? Nieprzyzwyczajony do takiej formy zapisywania liczb, ludzki mózg zazwyczaj nie jest w stanie pojąć, ile to jest. Byłoby miło móc konwertować liczby binarne na dziesiętne.

W systemie liczb dziesiętnych każdą liczbę można przedstawić jako sumę jednostek, dziesiątek, setek itd. Na przykład:

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

Przyjrzyj się uważnie temu wpisowi. Tutaj liczby 1, 4, 7 i 6 to zestaw liczb składających się na liczbę 1476. Wszystkie te liczby są naprzemiennie mnożone przez dziesięć podniesionych do jednego lub drugiego stopnia. Dziesięć jest podstawą dziesiętnego systemu liczbowego. Potęga, do której podnosi się dziesięć, to cyfra cyfry minus jeden.

Każdą liczbę binarną można rozłożyć w ten sam sposób. Tylko podstawa tutaj będzie wynosić 2:

10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

Te. liczba 10001001 o podstawie 2 jest równa liczbie 137 o podstawie 10. Można to zapisać w następujący sposób:

10001001 2 = 137 10

Dlaczego binarny system liczbowy jest tak powszechny?

Faktem jest, że system liczb binarnych jest językiem technologii komputerowej. Każda postać musi być w jakiś sposób przedstawiona na nośniku fizycznym. Jeśli jest to system dziesiętny, będziesz musiał stworzyć takie urządzenie, które może znajdować się w dziesięciu stanach. To skomplikowane. Łatwiej jest stworzyć element fizyczny, który może znajdować się tylko w dwóch stanach (na przykład jest prąd lub nie ma prądu). Jest to jeden z głównych powodów, dla których system binarny cieszy się tak dużym zainteresowaniem.

Konwersja dziesiętna na binarną

Może być konieczne przekonwertowanie liczby dziesiętnej na binarną. Jednym ze sposobów jest podzielenie przez dwa i utworzenie liczby binarnej z reszt. Na przykład musisz uzyskać jego notację binarną z liczby 77:

77/2 = 38 (1 reszta)
38/2 = 19 (reszta 0)
19/2 = 9 (1 reszta)
9/2 = 4 (1 reszta)
4 / 2 = 2 (reszta 0)
2 / 2 = 1 (reszta 0)
1 / 2 = 0 (1 reszta)

Resztę zbieramy razem, zaczynając od końca: 1001101. To jest liczba 77 w reprezentacja binarna. Sprawdźmy:

1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77

Systemy liczbowe

Dla wygody późniejszej transformacji poddawany jest sygnał dyskretny kodowanie(kodowanie, patrz sekcja Kodowanie sygnału). Większość kodów opiera się na systemach liczbowych, ponadto wykorzystuje pozycyjną zasadę tworzenia liczb, w której wartość każdej cyfry zależy od jej pozycji w liczbie.

Przykładem pozycyjnej formy zapisu liczb jest ta, której używamy (tzw. arabska forma liczb). Na przykład w liczbach 123 i 321 wartości liczby 3 są określone przez jej pozycję w liczbie: w pierwszym przypadku oznacza to trzy jednostki (tj. tylko trzy), a w drugi, trzysta (tj. trzysta).

Następnie całkowitą liczbę uzyskuje się według wzoru:

Gdzie ja - liczba cyfr liczby zmniejszona o 1,

I- kolejność wypisu,

M- podstawa systemu liczbowego,

A I jest mnożnikiem, który przyjmuje dowolną wartość całkowitą od 0 do M-1 i odpowiednią cyfrę I-ty rząd liczby.

Na przykład dla dziesiętnych ( M= 10) liczby 345, jej pełną wartość oblicza się ze wzoru:

3*10 2 + 4*10 1 + 5*10 0 = 345.

Liczby rzymskie są przykładem półpozycyjnego systemu tworzenia liczb: na przykład w liczbach IX i XI znak I oznacza w obu przypadkach jednostkę (znak systemu niepozycyjnego), ale będąc umieszczonym po lewej stronie znaku X (oznaczającego dziesięć), jest on odejmowany od dziesięciu, a znajdujący się po prawej stronie jest dodawany do dziesięciu. W pierwszym przypadku pełna wartość liczby to 9, w drugim - 11.

We współczesnej informatyce istnieją głównie trzy systemy liczbowe (wszystkie pozycyjne): binarny, szesnastkowy i dziesiętny.

System liczb binarnych służy do kodowania dyskretnego sygnału, którego konsumentem jest technologia komputerowa. Ten stan rzeczy rozwinął się historycznie, ponieważ sygnał binarny jest łatwiejszy do przedstawienia sprzętowego. W tym systemie liczbowym do reprezentacji liczby używane są dwa znaki - 0 i 1.

Szesnastkowy system liczbowy służy do kodowania sygnału dyskretnego, którego odbiorcą jest dobrze wyszkolony użytkownik – specjalista w dziedzinie informatyki. Ten formularz reprezentuje zawartość dowolnego pliku żądanego przez zintegrowane powłoki systemu operacyjnego, na przykład przy użyciu Norton Commander w przypadku MS DOS. Znaki używane do reprezentacji liczby to cyfry dziesiętne od 0 do 9 oraz litery alfabetu łacińskiego - A, B, C, D, E, F.

System liczb dziesiętnych służy do zakodowania sygnału dyskretnego, którego odbiorcą jest tzw. użytkownik końcowy – osoba niebędąca specjalistą w dziedzinie informatyki (oczywistym jest, że rolę takiego konsumenta może pełnić każda osoba). Znaki używane do reprezentowania liczby to cyfry od 0 do 9.

Aby rozróżnić systemy liczbowe, w których reprezentowane są liczby, wprowadzono dodatkowe szczegóły do ​​oznaczenia liczb binarnych i szesnastkowych:

    dla liczb binarnych - indeks dolny po prawej stronie liczby w postaci liczby 2 lub liter B lub b (binarny - binarny), albo znak B lub b po prawej stronie liczby. Na przykład 101000 2 = 101000 b = 101000 B = 101000B = 101000b;

    dla liczb szesnastkowych - indeks dolny po prawej stronie liczby w postaci liczby 16 lub liter H lub h (heksadecymalny - szesnastkowy), albo znak H lub h po prawej stronie liczby. Na przykład 3AB 16 = 3AB H = 3AB h = 3ABH = 3ABh.

Istnieją pewne zasady konwersji liczb z jednego systemu liczbowego na inny. Różnią się one w zależności od formatu liczby - liczby całkowitej lub ułamka właściwego. W przypadku liczb rzeczywistych stosuje się kombinację reguł translacji dla liczby całkowitej i ułamka właściwego

Reguły translacji liczb całkowitych

Wynik translacji liczby całkowitej Zawsze jest liczbą całkowitą.

Konwersja z dziesiętnego na binarny i szesnastkowy:

a) pierwotna liczba całkowita jest dzielona przez podstawę systemu liczbowego, na który jest konwertowana (przez 2 - przy konwersji na system dwójkowy lub przez 16 - przy konwersji na system szesnastkowy); uzyskuje się iloraz i resztę;

b) jeśli wynikowy iloraz jest mniejszy od podstawy systemu liczbowego, na który przeprowadzana jest konwersja, proces dzielenia zatrzymuje się, przejdź do kroku c). W przeciwnym razie akcje opisane w kroku a) są wykonywane na prywatnym;

c) wszystkie otrzymane salda i ostatni iloraz są przeliczane zgodnie z tabelą transferów na cyfry systemu liczbowego, na który jest dokonywany przelew;

d) powstaje liczba wynikowa: jej najbardziej znaczącą cyfrą jest ostatni otrzymany iloraz, każda kolejna najmniej znacząca cyfra jest tworzona z otrzymanych reszt z dzielenia, zaczynając od ostatniej i kończąc na pierwszej. Zatem najmniej znaczący bit wynikowej liczby to pierwsza reszta z dzielenia, a najbardziej znaczący to ostatni iloraz.

Przykład 1 . Zamień liczbę 19 na system binarny:

Zatem 19 = 10011 2 .

Przykład 2 . Zamień liczbę 19 na szesnastkowy system liczbowy:

Zatem 19 = 13 16 .

Przykład 3 Zamień liczbę 123 na szesnastkowy system liczbowy:

Tutaj reszta 11 jest konwertowana na cyfrę szesnastkową B), a następnie ta cyfra jest włączana do liczby. Zatem 123 \u003d 7V 16.

Konwersja z binarnych i szesnastkowych systemów liczbowych na dziesiętne.

W takim przypadku całkowita wartość liczby jest obliczana na podstawie znanej formuła.

Przykład 4 Zamień liczbę 13 16 na system dziesiętny. Mamy:

13 16 = 1*16 1 + 3*16 0 = 16 + 3 = 19.

Więc 13 16 = 19.

Przykład 5 Wykonaj konwersję liczby 10011 2 na system dziesiętny. Mamy:

10011 2 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16+0+0+2+1 = 19.

Więc 10011 2 = 19.

a) pierwotna liczba jest dzielona na tetrady (czyli 4 cyfry), zaczynając od cyfr najmniej znaczących. Jeśli liczba cyfr oryginalnej liczby binarnej nie jest wielokrotnością 4, jest ona uzupełniana po lewej stronie nieznaczącymi zerami, aż do osiągnięcia wielokrotności 4;

b) każda tetrada zostanie zastąpiona odpowiednią cyfrą szesnastkową zgodnie z art tabela.

Liczba binarna

Liczba szesnastkowa

Przykład 6 Zamień liczbę 10011 2 na szesnastkowy system liczbowy.

Ponieważ liczba cyfr w oryginalnej liczbie binarnej nie jest wielokrotnością 4, uzupełniamy ją z lewej strony nieznaczącymi zerami, aż liczba cyfr będzie wielokrotnością 4. Mamy:

Zgodnie z tabela 0011 2 = 11 2 = 3 16 i 0001 2 = 1 2 = 1 16 .

Wtedy 10011 2 = 13 16 .

Konwersja z binarnego na ósemkowy

Podobnie jak w przypadku algorytmu konwersji z binarnego na szesnastkowy, tylko pierwotna liczba jest dzielona na triady. Tabela

Liczba binarna

Liczba szesnastkowa

a) każda cyfra pierwotnego numeru zostaje zastąpiona tetradą cyfr binarnych zgodnie z tabela. Jeśli liczba binarna ma mniej niż 4 cyfry w tabeli, jest uzupełniana po lewej stronie nieznaczącymi zerami do tetrady;

b) nieistotne zera w wynikowej liczbie są odrzucane.

Przykład 7 Zamień liczbę 13 16 na system liczb binarnych.

Przez tabela mamy:

    1 16 = 1 2 i po dopełnieniu nieznacznymi zerami liczby binarnej 1 2 = 0001 2 ;

    3 16 = 11 2 i po dopełnieniu nieznacznymi zerami liczby binarnej 11 2 = 0011 2 .

Wtedy 13 16 = 00010011 2 . Po usunięciu nieistotnych zer mamy 13 16 = 10011 2 .

Z ósemkowego na binarny jest podobnie.

Zasady tłumaczenia ułamków właściwych

Przypomnijmy, że ułamek właściwy ma zerową część całkowitą, tj. jego licznik jest mniejszy od mianownika.

Wynik przeliczenia właściwego ułamka Zawsze Prawidłowa frakcja.

Konwersja z dziesiętnego na binarny i szesnastkowy:

a) pierwotny ułamek jest mnożony przez podstawę systemu liczbowego, na który został przetłumaczony (2 lub 16);

b) w otrzymanym produkcie część całkowita jest zamieniana na cyfrę żądanego systemu liczbowego i odrzucana - jest to najwyższa cyfra wynikowego ułamka;

c) pozostałą część ułamkową (jest to ułamek właściwy) ponownie mnoży się przez żądaną podstawę systemu liczbowego, a następnie przetwarza otrzymany iloczyn zgodnie z krokami a) ib);

d) procedura mnożenia trwa do momentu uzyskania wyniku zerowego w części ułamkowej iloczynu lub osiągnięcia wymaganej liczby cyfr w wyniku;

e) tworzona jest żądana liczba: liczby kolejno odrzucane w kroku b) składają się na ułamkową część wyniku, w malejącym porządku pierwszeństwa.

Przykład 1 . Wykonaj konwersję liczby 0,847 do systemu liczb binarnych. Tłumaczenie wykonać do czterech cyfr znaczących po przecinku.

Zatem 0,847 = 0,1101 2 .

W tym przykładzie procedura translacji zostaje przerwana w czwartym kroku, ponieważ odebrano wymaganą liczbę bitów wynikowych. Oczywiście doprowadziło to do utraty wielu numerów.

Przykład 2 Zamień liczbę 0,847 na szesnastkową. Tłumaczenie do wykonania do trzech cyfr znaczących.

W tym przykładzie procedura transferu również zostaje przerwana.

Zatem 0,847 = 0,D8D 16 .

Tłumaczenie od binarnych i szesnastkowych systemów liczbowych do dziesiętnych.

W takim przypadku całkowita wartość liczby jest obliczana przez formuła i współczynniki A I przyjąć wartość dziesiętną

Przykład 3 . Wykonaj konwersję z liczby binarnej na dziesiętną 0,1101 2 .

0,1101 2 = 1*2 -1 + 1*2 -2 + 0*2 -3 +1*2 -4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.

Przykład 1) jest spowodowane przerwaniem procedury konwersji na ułamek binarny.

Zatem 0,1101 2 = 0,8125.

Przykład 4 . Wykonaj konwersję z liczby szesnastkowej na dziesiętną 0,D8D 16 .

0,D8D 16 \u003d 13 * 16 -1 + 8 * 16 -2 + 13 * 16 -3 \u003d 13 * 0,0625 + 8 * 0,003906 + 13 * 0,000244 \u003d 0,84692.

Rozbieżność między otrzymanym wynikiem a pierwotną liczbą (zob. przykład 2) jest spowodowane przerwaniem procedury konwersji szesnastkowej.

Zatem 0,D8D 16 = 0,84692.

Tłumaczenie z binarnego na szesnastkowy:

a) Pierwotny ułamek dzieli się na tetrady, zaczynając od miejsca przecinka po prawej stronie. Jeśli liczba cyfr części ułamkowej oryginalnej liczby binarnej nie jest wielokrotnością 4, jest ona uzupełniana po prawej stronie nieznaczącymi zerami, aż do osiągnięcia wielokrotności 4;

b) każdą tetradę zastępuje się cyfrą szesnastkową zgodnie z ust tabela.

Przykład 5 . Wykonaj konwersję z liczby binarnej na liczbę szesnastkową 0,1101 2 .

Zgodnie z tabela 1101 2 = re 16 . Wtedy 0,1101 2 = 0,D 16 .

Przykład 6 . Wykonaj konwersję z liczby binarnej na liczbę szesnastkową 0.0010101 2 .

Ponieważ liczba cyfr części ułamkowej nie jest wielokrotnością 4, dodajemy nieznaczne zero po prawej stronie:

Zgodnie z tabela 0010 2 = 10 2 = 2 16 i 1010 2 = ZA 16 .

Wtedy 0,0010101 2 = 0,2 A 16 .

Tłumaczenie z szesnastkowego na binarne:

a) każdą cyfrę pierwotnego ułamka zastępuje się tetradą cyfr binarnych zgodnie z tabela;

b) nieistotne zera są odrzucane.

Przykład 7 . Wykonaj konwersję z systemu liczb szesnastkowych na liczbę binarną 0,2A 16.

Przez tabela mamy 2 16 \u003d 0010 2 i A 16 \u003d 1010 2.

Następnie 0,2A 16 \u003d 0,00101010 2.

W rezultacie odrzucamy nieistotne zero i otrzymujemy ostateczną odpowiedź: 0,2A 16 \u003d 0,0010101 2

Zasada tłumaczenia liczb ułamkowych (ułamki niewłaściwe)

Przypomnijmy, że ułamek niewłaściwy ma niezerową część ułamkową, tj. jego licznik jest większy niż mianownik.

Nieprawidłowy wynik przeliczenia ułamka Zawsze ułamek niewłaściwy.

Podczas tłumaczenia część całkowita liczby jest tłumaczona osobno, a część ułamkowa jest osobno tłumaczona. Wyniki się sumują.

Przykład 1 . Konwersja liczby dziesiętnej na szesnastkową 19,847. Przelew wykonać do trzech cyfr znaczących po przecinku.

Przedstawmy pierwotną liczbę jako sumę liczby całkowitej i ułamka właściwego:

19,847 = 19 + 0,847.

Jak wynika z przykład 2 Sekcja Tłumaczenie liczb całkowitych 19 \u003d 13 16 i zgodnie z przykład 2 Sekcja Tłumaczenie ułamków właściwych 0,847 = 0,D8D 16 .

Następnie mamy:

19 + 0,847 = 13 16 + 0,D8D 16 = 13,D8D 16 .

Zatem 19,847 = 13, D8D 16 .

Zasady wykonywania prostych operacji arytmetycznych

Operacje arytmetyczne na liczbach binarnych i szesnastkowych są wykonywane według tych samych zasad, co na liczbach dziesiętnych, które są dobrze znane czytelnikowi. Spójrzmy na przykłady wykonywania takich operacji arytmetycznych jak dodawanie, odejmowanie i mnożenie na liczbach całkowitych.

Zasady dodawania

Tabela dodawania cyfr binarnych wygląda następująco (wartości sum są podświetlone na żółto):

Przykład 1 . zginać dwójkowy numery 1101 i 11011.

Proces tworzenia sumy za pomocą cyfr opisano poniżej:

a) cyfra 1: 1 2 + 1 2 \u003d 10 2; 0 pozostaje w bicie 1, 1 jest przenoszone do bitu 2;

b) bit 2: 0 2 + 1 2 + 1 2 = 10 2, gdzie drugie 1 2 jest jednostką transferu; 0 pozostaje w bicie 2, 1 jest przenoszone do bitu 3;

c) cyfra 3: 1 2 + 0 2 + 1 2 = 10 2 , gdzie drugie 1 2 to jednostka transferu; 0 pozostaje w bicie 3, 1 jest przenoszone do bitu 4;

d) cyfra 4: 1 2 + 1 2 + 1 2 = 11 2 , gdzie trzecia 1 2 to jednostka przenoszenia; 1 pozostaje w bicie 4, 1 jest przenoszone do bitu 5;

e) ranga 5: 1 2 + 1 2 = 10 2 ; gdzie drugi 1 2 jest jednostką przenoszenia; 0 pozostaje w bicie 5, 1 jest przenoszone do bitu 6.

Zatem: 1 1 0 1 2 +1 1 0 1 1 2 = 10 1 0 0 0 2 .

Sprawdźmy wynik. Aby to zrobić, określamy całkowite wartości warunków i sumę (patrz ryc. Tłumaczenie liczb całkowitych):

1101 2 = 1*2 3 +1*2 2 + 0*2 1 + 1*2 0 = 8 + 4 + 1 = 13;

11011 2 = 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16 + 8 + 2 + 1 = 27;

101000 2 = 1*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 0*2 0 = 32 + 8 = 40.

Ponieważ 13 + 27 = 40, dodawanie binarne jest poprawne.

Tabela dodawania dla niektórych liczb szesnastkowych wygląda następująco (oznaczenia wierszy i kolumn odpowiadają terminom):

Przykład 2 . zginać szesnastkowy numery 1C i 7B.

Zapiszmy wyrazy w kolumnie i ponumerujmy cyfry, przypisując cyfrę 1 najmniej znaczącej cyfrze:

Proces generowania wyniku według rang przy użyciu danych stoły Opisane poniżej:

a) rozładowanie 1: C 16 + B 16 \u003d 17 16; 7 pozostaje w cyfrze 1; 1 jest przenoszone do bitu 2;

b) cyfra 2: 1 16 + 7 16 + 1 16 = 9 16 , gdzie drugie 1 16 to jednostka transferu.

Zatem: 1 C 16 + 7 B 16 \u003d 9 7 16.

Sprawdźmy wynik. Aby to zrobić, określamy całkowite wartości terminów i wynik (patrz ryc. Tłumaczenie liczb całkowitych):

1С 16 \u003d 1 * 16 1 + 12 * 16 0 \u003d 16 + 12 \u003d 28;

7V 16 \u003d 7 * 16 1 + 11 * 16 0 \u003d 112 + 11 \u003d 123;

97 16 = 9*16 1 + 7*16 0 = 144 + 7 = 151.

Ponieważ 28 + 123 = 151, dodawanie jest poprawne.

zasady odejmowania

Podczas odejmowania używane są podane wcześniej tabele dodawania.

Przykład 3 . odjąć od dwójkowy numery 101 dwójkowy numer 11.

Konwersja liczb binarnych, ósemkowych i szesnastkowych na dziesiętne jest dość łatwa. Aby to zrobić, musisz napisać liczbę w rozszerzonej formie i obliczyć jej wartość.

Konwersja liczby z binarnej na dziesiętną. Weźmy dowolną liczbę binarną, na przykład 10,112. Piszemy to w rozszerzonej formie i wykonujemy obliczenia:

10,112 = 1*21 +0*2° + 1*2-1 + 1*2-2 = 1*2 + 0*1 + 1*1/2 + 1*1/4 = 2,7510.

Konwersja liczb z ósemkowej na dziesiętną.

Weźmy dowolną liczbę ósemkową, na przykład 67,58. Piszemy to w rozszerzonej formie i wykonujemy obliczenia:

67,58 = 6*81 + 7*8° + 5*8-1 = 6*8 + 7*1 + 5*1/8 = 55,62510.

Konwersja liczb z szesnastkowego na dziesiętny.

Weźmy dowolną liczbę szesnastkową, na przykład 19F16. Zapiszmy to w postaci rozwiniętej (pamiętając, że cyfra szesnastkowa F odpowiada liczbie dziesiętnej 15) i wykonajmy obliczenia:

19F16 = 1*162 + 9*161 + F*16° = 1*256 + 9*16 + 15*1 = 41510.

Konwersja liczb z dziesiętnych na binarne, ósemkowe i szesnastkowe jest bardziej złożona i można to zrobić różne sposoby. Rozważ jeden z algorytmów translacji na przykładzie konwersji liczb z dziesiętnego na binarny. W takim przypadku należy pamiętać, że algorytmy translacji liczb całkowitych i ułamków właściwych będą się różnić.

Algorytm konwersji liczb całkowitych dziesiętnych na system liczb binarnych. Niech Atzd będzie całkowitą liczbą dziesiętną. Zapisujemy to jako sumę potęg o podstawie 2 ze współczynnikami binarnymi. W rozszerzonej formie nie będzie ujemnych stopni podstawy (numer 2):

AD= an-1*2n-1+ an-2*2n-2+…+ a1*21+a0*20

W pierwszym kroku liczbę A dzielimy przez podstawę systemu dwójkowego, czyli przez 2. Iloraz dzielenia będzie równy

an-1*2n-2+ an-2*2n-3+…+ a1

W drugim kroku iloraz liczb całkowitych jest ponownie dzielony przez 2, reszta z dzielenia będzie teraz równa a0

Jeśli będziemy kontynuować ten proces podziału, to po n-tym kroku otrzymamy sekwencję reszt:

a0, a1, ..., an-1

Łatwo zauważyć, że ich kolejność pokrywa się z odwrotną kolejnością cyfr binarnej liczby całkowitej zapisanej w postaci złożonej:

A2 = an-1…a1a0

Zatem wystarczy zapisać reszty w odwrotnej kolejności, aby uzyskać żądaną liczbę binarną.

Algorytm konwersji dziesiętnej liczby całkowitej na binarną będzie następujący:

Konsekwentnie dziel pierwotną liczbę dziesiętną całkowitą i wynikowe ilorazy liczb całkowitych przez podstawę systemu (przez 2), aż otrzymasz iloraz mniejszy niż dzielnik, czyli mniejszy niż 2.

Zapisz uzyskane salda w odwrotnej kolejności.

Jako przykład rozważ konwersję liczby dziesiętnej 19 na binarną, zapisując wyniki w tabeli:

W rezultacie otrzymujemy liczbę binarną: A2 = a 4 a 3a 2a1 a0 = 100112.

Algorytm konwersji poprawnych ułamków dziesiętnych na system liczb binarnych. Niech A będzie właściwym ułamkiem dziesiętnym. W rozszerzonej formie nie będzie dodatnich stopni podstawy (numer 2):

Dodaj = a-1*2-1+ a-2*2-2

W pierwszym kroku mnożymy liczbę Dodaj przez podstawę systemu dwójkowego, czyli przez 2. Iloczyn będzie równy:

a-1 +a-2*2-1+…

Część całkowita będzie równa a-1

W drugim kroku pozostała część ułamkowa jest ponownie mnożona przez 2, otrzymujemy część całkowitą równą a-2

Opisany proces należy kontynuować, aż w wyniku mnożenia otrzymamy zerową część ułamkową lub osiągnięta zostanie wymagana dokładność obliczeń.

Łatwo zauważyć, że otrzymana sekwencja liczb pokrywa się z sekwencją cyfr ułamkowej liczby binarnej zapisanej w formie złożonej:

Algorytm konwersji prawidłowego ułamka dziesiętnego na binarny będzie następujący:

  • 1. Wykonaj kolejne mnożenie pierwotnego ułamka dziesiętnego i otrzymanych części ułamkowych iloczynu przez podstawę układu (przez 2) aż do uzyskania zerowej części ułamkowej lub wymaganej dokładności obliczeń.
  • 2. Zapisz powstałe całe części pracy w bezpośredniej kolejności.

Jako przykład rozważ konwersję ułamka dziesiętnego 0,75 na binarny, zapisując wyniki w tabeli:


W rezultacie otrzymujemy ułamek binarny: A2 \u003d 0 i -1a-2 \u003d 0,112.

Konwersja liczb z systemu pozycyjnego o dowolnej podstawie p do systemu o podstawie q odbywa się według algorytmów podobnych do omówionych powyżej.

Rozważ algorytm konwersji liczb całkowitych na przykładzie konwersji całkowitej liczby dziesiętnej A10 = 42410 na system szesnastkowy, to znaczy z systemu liczbowego o podstawie p = 10 na system liczbowy o podstawie q = 16.

W trakcie wykonywania algorytmu należy zwrócić uwagę, aby wszystkie działania wykonać w oryginalnym systemie liczbowym (w tym przypadku dziesiętnym), a otrzymane reszty zapisać cyframi nowy system zliczanie (w tym przypadku szesnastkowe).



Rozważmy teraz algorytm konwersji liczb ułamkowych na przykładzie konwersji ułamka dziesiętnego A10 = 0,625 na system ósemkowy, czyli z systemu liczbowego o podstawie p = 10 na system liczbowy o podstawie q = 8.

W trakcie wykonywania algorytmu należy zwrócić uwagę, aby wszystkie czynności wykonać w pierwotnym systemie liczbowym (w tym przypadku dziesiętnym), a otrzymane reszty zapisać cyframi nowego systemu liczbowego (w w tym przypadku ósemkowy).

Translację liczb między systemami liczbowymi, których podstawą są potęgi liczby 2 (q = 2n), można wykonać przy użyciu prostszych algorytmów. Takie algorytmy mogą być używane do tłumaczenia liczb między systemami liczb binarnych (q = 21), ósemkowych (q = 23) i szesnastkowych (q = 24).

Konwersja liczb z binarnego na ósemkowy. Do zapisu liczb binarnych używane są dwie cyfry, to znaczy w każdym bicie liczby możliwe są 2 opcje zapisu. Rozwiązujemy równanie wykładnicze:

2 = 21 . Ponieważ 2 - 21, to I = 1 bit.

Każda cyfra liczby binarnej zawiera 1 bit informacji o możliwości zapisu. Rozwiążmy równanie wykładnicze

8 = 2i. Skoro 8 = 23, to I = 3 bity. Każda liczba ósemkowa zawiera 3 bity informacji.

Tak więc, aby zamienić binarną liczbę całkowitą na ósemkową, musisz podzielić ją na grupy po trzy cyfry, od prawej do lewej, a następnie przekształcić każdą grupę na cyfrę ósemkową. Jeżeli w ostatniej lewej grupie jest mniej niż trzy cyfry, to należy ją uzupełnić zerami po lewej stronie.

Przetłumaczmy liczbę binarną 1010012 na ósemkową w ten sposób: 518

Aby uprościć tłumaczenie, możesz wcześniej przygotować tabelę do konwersji triad binarnych (grup 3 cyfr) na cyfry ósemkowe:

będzie mniejszy niż cztery cyfry, to należy go uzupełnić po prawej stronie zerami.

Następnie musisz przekonwertować każdą grupę na cyfrę szesnastkową, używając wcześniej skompilowanej tabeli korespondencji binarnych tetrad i cyfr szesnastkowych.

Przetłumaczmy binarną liczbę całkowitą A2 = 1010012 na szesnastkową:

Aby zamienić ułamkową liczbę binarną (ułamek właściwy) na ósemkową, należy podzielić ją na triady od lewej do prawej, a jeśli ostatnia, prawa grupa zawiera mniej niż trzy cyfry, dopełnić ją zerami po prawej stronie. Następnie musisz zastąpić triady liczbami ósemkowymi.

Na przykład przekonwertujmy ułamkową liczbę binarną A2 = 0,1101012 na system liczb ósemkowych:

Otrzymujemy: A8 = 0,658.

Konwersja liczb z binarnego na szesnastkowy.

Do zapisywania liczb szesnastkowych używa się szesnastu cyfr, co oznacza, że ​​każda cyfra liczby może zawierać 16 opcji zapisu. Rozwiązujemy równanie wykładnicze:

16 = 21. Ponieważ 16 = 24, to I = 4 bity.

Każda ranga liczba szesnastkowa zawiera 4 bity informacji.

Tak więc, aby zamienić binarną liczbę całkowitą na szesnastkową, należy ją podzielić na grupy po cztery cyfry (tetrady), zaczynając od prawej strony, a jeśli ostatnia lewa grupa zawiera mniej niż cztery cyfry, uzupełnij ją zerami po lewej stronie. Aby zamienić ułamkową liczbę binarną (ułamek właściwy) na szesnastkową, należy podzielić ją na tetrady od lewej do prawej, a jeśli ostatnia prawa grupa zawiera mniej niż 4 cyfry, to należy ją uzupełnić zerami po prawej stronie .

Aby przekonwertować dowolną liczbę binarną na system liczbowy ósemkowy lub szesnastkowy, konieczne jest wykonanie konwersji zgodnie z omówionymi powyżej algorytmami oddzielnie dla jej części całkowitej i ułamkowej.

Aby przekonwertować liczby z ósemkowego i szesnastkowego na binarne, musisz przekonwertować cyfry liczby na grupy cyfr binarnych. Aby przekonwertować z ósemkowego na binarny, każda cyfra liczby musi zostać przekształcona na grupę trzech cyfr binarnych (triada), a podczas konwersji liczby szesnastkowej na grupę czterech cyfr (tetrada).

Na przykład przekonwertujmy ułamkową liczbę ósemkową A8 = 0,478 na system liczb binarnych:

Po raz pierwszy system liczb pozycyjnych powstał w starożytnym Babilonie. W Indiach system działa w formie

pozycyjne numerowanie dziesiętne przy użyciu zera wśród Hindusów ten system liczby

pożyczone przez naród arabski, te z kolei zostały zabrane przez Europejczyków. W Europie ten system stał się

zadzwoń po arabsku.

System pozycyjny - wartość wszystkich cyfr zależy od pozycji (cyfry) tej cyfry w liczbie.

Przykłady, standardowy system liczbowy 10-ty jest systemem pozycyjnym. Powiedzmy, że liczba to 453.

Liczba 4 oznacza setki i odpowiada liczbie 400, 5 - liczba dziesiątek i odpowiada wartości 50,

i 3 - jednostki i wartość 3. Łatwo zauważyć, że wraz ze wzrostem rozładowania wartość rośnie.

Zatem podaną liczbę zapisujemy jako sumę 400+50+3=453.

System liczb binarnych.

Są tylko 2 cyfry - 0 i 1. Podstawa systemu binarnego- numer 2.

Liczba, która znajduje się od samej krawędzi w prawo, wskazuje liczbę jednostek, druga liczba -

We wszystkich cyfrach możliwa jest tylko jedna cyfra - zero lub jedynka.

Korzystając z systemu liczb binarnych, można zakodować dowolną liczbę naturalną poprzez reprezentację

jest liczbą w postaci ciągu zer i jedynek.

Przykład: 10112 = 1*2 3 + 0*2*2+1*2 1 +1*2 0 =1*8 + 1*2+1=1110

System liczb binarnych, podobnie jak system liczb dziesiętnych, jest często używany w informatyce

technika. Komputer przechowuje tekst i liczby w swojej pamięci w kodzie binarnym i programowo przekształca

w obraz na ekranie.

Dodawanie, odejmowanie i mnożenie liczb binarnych.

Tablica dodawania w systemie binarnym:

10 (przejazd do godz

starszy stopień)

Tablica odejmowania w systemie dwójkowym:

(pożyczka od seniora

zwolnienie) 1

Przykład dodania „kolumny” (14 10 + 5 10 = 19 10 Lub 1110 2 + 101 2 = 10011 2):

+ 1 1 1 0
1 0 1
1 0 0 1 1

Tabliczka mnożenia w systemie dwójkowym:

Przykład mnożenia przez „kolumnę” (14 10 * 5 10 = 70 10 Lub 1110 2 * 101 2 = 1000110 2):

* 1 1 1 0
1 0 1
+ 1 1 1 0
1 1 1 0
= 1 0 0 0 1 1 0

Konwersja liczb w systemie binarnym.

Aby przekonwertować z binarnego na dziesiętny, użyj poniższej tabeli wykładników

podstawa 2:

Zaczynając od cyfry jeden, każda liczba jest mnożona przez 2. Kropka po 1 nazywana jest punkt binarny.

Konwersja liczb binarnych na dziesiętne.

Niech będzie liczba binarna 110001 2 . Aby przekonwertować na dziesiętny, zapisz to jako sumę

plasuje się następująco:

1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 49

Troszkę inny:

1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 49

Dobrze jest również zapisać obliczenia w formie tabeli:

Poruszamy się od prawej do lewej. Pod wszystkimi jednostkami binarnymi wpisujemy ich odpowiedniki w poniższym wierszu.

Konwersja ułamkowych liczb binarnych na dziesiętne.

Ćwiczenia: zamień liczbę 1011010, 101 2 na dziesiętną.

Podaną liczbę piszemy w tej postaci:

1*2 6 +0*2 5 +1*2 4 +1*2 3 +0 *2 2 + 1 * 2 1 + 0 * 2 0 + 1 * 2 -1 + 0 * 2 -2 + 1 * 2 -3 = 90,625

Inna opcja zapisu:

1*64+0*32+1*16+1*8+0*4+1*2+0*1+1*0,5+0*0,25+1*0,125 = 90,625

Lub w formie tabeli:

0.25

0.125

0.125

Konwersja liczb dziesiętnych na binarne.

Pozwól, że musisz przekonwertować liczbę 19 na binarną. Możemy to zrobić w ten sposób:

19 /2 = 9 z resztą 1

9 /2 = 4 z resztą 1

4 /2 = 2 bez śladu 0

2 /2 = 1 bez śladu 0

1 /2 = 0 z resztą 1

Oznacza to, że każdy iloraz jest dzielony przez 2, a reszta jest zapisywana na końcu zapisu binarnego. Dział

trwa, aż iloraz będzie równy zeru. Podsumowanie jest pisane od prawej do lewej. Te. niżej

numer (1) będzie najbardziej wysunięty na lewo i tak dalej. Otrzymaliśmy więc liczbę 19 w zapisie binarnym: 10011.

Konwersja ułamkowych liczb dziesiętnych na binarne.

Gdy w danej liczbie występuje część całkowita, to jest ona przeliczana oddzielnie od części ułamkowej. Tłumaczenie

liczba ułamkowa od dziesiętnej do binarnej występuje w następujący sposób:

  • Ułamek jest mnożony przez podstawę systemu liczb binarnych (2);
  • W powstałej pracy wyodrębnia się całą część, która jest akceptowana jako część starsza.

cyfra liczby w systemie liczb binarnych;

  • Algorytm kończy się, jeśli ułamkowa część wynikowego iloczynu jest równa zeru lub jeśli

osiągnięto wymaganą dokładność obliczeń. W W przeciwnym razie obliczenia są kontynuowane

ułamkowa część produktu.

Przykład: Należy przekonwertować ułamkową liczbę dziesiętną 206,116 na ułamkową liczbę binarną.

Przeliczając część całkowitą, otrzymujemy 206 10 =11001110 2 . Część ułamkową liczby 0,116 mnoży się przez podstawę 2,

całe części produktu podajemy cyframi po przecinku:

0,116 . 2 = 0,232

0,232 . 2 = 0,464

0,464 . 2 = 0,928

0,928 . 2 = 1,856

0,856 . 2 = 1,712

0,712 . 2 = 1,424

0,424 . 2 = 0,848

0,848 . 2 = 1,696

0,696 . 2 = 1,392

0,392 . 2 = 0,784

Wynik: 206,116 10 ≈ 11001110,0001110110 2

Algorytm konwersji liczb z jednego systemu liczbowego na inny.

1. Z systemu liczb dziesiętnych:

  • liczbę dzielimy przez podstawę tłumaczonego systemu liczbowego;
  • znajdź resztę z dzielenia części całkowitej liczby;
  • zapisz wszystkie reszty z dzielenia w odwrotnej kolejności;

2. Z systemu liczb binarnych:

  • aby przekonwertować na dziesiętny, znajdujemy sumę iloczynów o podstawie 2 przez

odpowiedni stopień rozładowania;

W sekcji dotyczącej pytania, jak przełączyć się z dziesiętnego na binarny? podane przez autora Yatiana Tatiana najlepszą odpowiedzią jest Konwersja dziesiętna na binarną

Powiedzmy, że musimy przekonwertować liczbę 19 na binarną. Możesz skorzystać z następującej procedury:

19/2 = 9 z resztą 1
9/2 = 4 z resztą 1
4/2 = 2 z resztą 0
2/2 = 1 z resztą 0
1/2 = 0 z resztą 1

Dzielimy więc każdy iloraz przez 2 i do reszty zapisujemy 1 lub 0. Dzielenie musimy kontynuować, aż dzielna wyniesie 1. Liczby z reszty umieszczamy jedna po drugiej, zaczynając od końca. W rezultacie otrzymujemy liczbę 19 w zapisie binarnym (licząc od końca): 10011.

Powodzenia))

Odpowiedź od Rozella[guru]

Aby zamienić 19 na system binarny, wybierz w górnym rzędzie największą liczbę podzielną bez reszty przez 19. W naszym przypadku jest to 16. (przed 19 brakuje jeszcze 3) Następna liczba podzielna przez 3 bez reszty wynosi 2. (1 pozostaje) 1 jest podzielne przez 1 bez reszty. wybrał liczby 16 - 2 - 1. Pod nimi piszemy „1”, pod resztą „0”. Otrzymujemy 10011.
Wygląda raczej nieporęcznie w słowach. Ale jeśli przyjrzysz się uważnie tabeli - nie ma w tym nic skomplikowanego. Jest szybko zapamiętywany i do tłumaczenia nie jest potrzebny długopis ani papier.

Podobne posty