Kalkulator operacji arytmetycznych w różnych systemach liczbowych. Dodawanie binarne

Przydział usług. Kalkulator online jest przeznaczony do dodawania liczb binarnych w kodach bezpośrednich, odwrotnych i komplementarnych.

Z tym kalkulatorem używane są również:
Konwersja liczb na systemy binarne, szesnastkowe, dziesiętne, ósemkowe
Mnożenie liczb binarnych
Format zmiennoprzecinkowy
Przykład 1. Wyraź liczbę 133,54 jako liczbę zmiennoprzecinkową.
Rozwiązanie. Przedstawmy liczbę 133,54 w znormalizowanej postaci wykładniczej:
1,3354*10 2 = 1,3354*exp 10 2
Liczba 1,3354*exp 10 2 składa się z dwóch części: mantysy M=1,3354 i wykładnika exp 10 =2
Jeśli mantysa mieści się w przedziale 1 ≤ M Reprezentowanie liczby w zdenormalizowanej formie wykładniczej.
Jeśli mantysa mieści się w zakresie 0,1 ≤ M Przedstawmy liczbę w zdenormalizowanej postaci wykładniczej: 0,13354*exp 10 3

Przykład nr 2. Przedstaw liczbę binarną 101,10 2 w postaci znormalizowanej, zapisz w 32-bitowym standardzie IEEE754.
tabela prawdy


Obliczanie limitu

Arytmetyka w systemie dwójkowym

Operacje arytmetyczne w systemie dwójkowym są wykonywane w taki sam sposób, jak w systemie dziesiętnym. Ale jeśli w systemie liczb dziesiętnych przelew i pożyczka są realizowane przez dziesięć jednostek, to w systemie binarnym - przez dwie jednostki. W tabeli przedstawiono zasady dodawania i odejmowania w systemie dwójkowym.
  1. Podczas dodawania dwóch jednostek w systemie liczb binarnych bit ten będzie miał wartość 0 i nastąpi przeniesienie jedynki do najwyższego bitu.
  2. Odejmując jedynkę od zera, jedynkę pożycza się od najwyższego rzędu, gdzie jest 1 . Jednostka zajęta w tym miejscu daje dwie jednostki w miejscu, w którym obliczana jest akcja, oraz jedną we wszystkich miejscach pośrednich.

Dodawanie liczb z uwzględnieniem ich znaków na maszynie to sekwencja następujących czynności:

  • konwersja oryginalnych numerów na określony kod;
  • bitowe dodawanie kodów;
  • analiza wyniku.
Podczas wykonywania operacji w kodzie odwrotnym (zmodyfikowanym odwrotnym), jeśli w wyniku dodania w bicie znaku pojawi się jednostka przeniesienia, jest ona dodawana do najmniej znaczącego bitu sumy.
Podczas wykonywania operacji w kodzie dodatkowym (zmodyfikowanym dodatkowym), jeśli w wyniku dodania w bicie znaku pojawi się jednostka przeniesienia, jest ona odrzucana.
Operacja odejmowania w komputerze odbywa się poprzez dodawanie według zasady: X-Y=X+(-Y). Dalsze czynności wykonuje się w taki sam sposób, jak w przypadku operacji dodawania.

Przykład 1.
Biorąc pod uwagę: x=0,110001; y= -0,001001, dodaj odwrotny zmodyfikowany kod.

Biorąc pod uwagę: x=0,101001; y= -0.001101, dodaj dodatkowy zmodyfikowany kod.

Przykład nr 2. Rozwiąż przykłady odejmowania binarnego za pomocą metody dopełniania i zawijania jedynki.
a) 11 - 10.
Rozwiązanie.
Przedstawmy liczby 11 2 i -10 2 w odwrotnym kodzie.

Liczba binarna 0000011 ma kod powrotu 0,0000011

Dodajmy liczby 00000011 i 11111101

7 6 5 4 3 2 1 0
1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0

7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0

W drugim bicie wystąpiło przepełnienie (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do trzeciego bitu.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0

7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

W rezultacie otrzymujemy:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

Nastąpiło przeniesienie z bitu znaku. Dodajmy ją (czyli 1) do otrzymanej liczby (wykonując tym samym procedurę cyklicznego przeniesienia).
W rezultacie otrzymujemy:
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1

Wynik dodawania: 00000001. Konwertuj na reprezentację dziesiętną. Aby przetłumaczyć część całkowitą, należy pomnożyć cyfrę liczby przez odpowiedni stopień cyfry.
00000001 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
Wynik dodawania (w notacji dziesiętnej): 1

b) 111-010 Przedstawmy liczby 111 2 i -010 2 w kodzie odwrotnym.
Kod odwrotny dla liczby dodatniej jest taki sam jak kod bezpośredni. W przypadku liczby ujemnej wszystkie cyfry liczby są zastępowane przez przeciwne (1 do 0, 0 do 1), a jedna jest wpisywana w bicie znaku.
Liczba binarna 0000111 ma kod powrotu 0,0000111
Liczba binarna 0000010 ma kod powrotu 1.1111101
Dodajmy liczby 00000111 i 11111101
Nastąpiło przepełnienie bitu 0 (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do pierwszego bitu.

7 6 5 4 3 2 1 0
1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0

Nastąpiło przepełnienie pierwszego bitu (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do drugiego bitu.
7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0

W drugim bicie wystąpiło przepełnienie (1 + 1 + 1 = 11). Dlatego piszemy 1 i przenosimy 1 na trzecią cyfrę.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
1 0 0

Nastąpiło przepełnienie trzeciego bitu (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do czwartego bitu.
7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 1 0 0

W 4. bicie wystąpiło przepełnienie (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do piątego bitu.
7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 1 0 0

W piątym bicie wystąpiło przepełnienie (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do szóstego bitu.
7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 1 0 0

W 6. bicie wystąpiło przepełnienie (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do siódmego bitu.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 1 0 0

W 7. bicie wystąpiło przepełnienie (1 + 1 = 10). Dlatego piszemy 0 i przenosimy 1 do ósmego bitu.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

W rezultacie otrzymujemy:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

Nastąpiło przeniesienie z bitu znaku. Dodajmy ją (czyli 1) do otrzymanej liczby (wykonując tym samym procedurę cyklicznego przeniesienia).
W rezultacie otrzymujemy:
7 6 5 4 3 2 1 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1

Wynik dodawania: 00000101
Otrzymaliśmy liczbę 00000101. Aby przetłumaczyć część całkowitą, konieczne jest pomnożenie cyfry liczby przez stopień odpowiadającej jej cyfry.
00000101 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *1 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
Wynik dodawania (w notacji dziesiętnej): 5

Dodawanie binarnych liczb rzeczywistych zmiennoprzecinkowych

W komputerze dowolną liczbę można przedstawić w formacie zmiennoprzecinkowym. Format zmiennoprzecinkowy pokazano na rysunku:


Na przykład liczbę 10101 w formacie zmiennoprzecinkowym można zapisać w następujący sposób:


Komputery używają znormalizowanej formy notacji, w której pozycja przecinka jest zawsze podawana przed znaczącą cyfrą mantysy, tj. warunek jest spełniony:
b -1 ≤|M| Znormalizowana liczba - jest to liczba, która ma cyfrę znaczącą po przecinku (tj. 1 w systemie liczb binarnych). Przykład normalizacji:
0,00101*2 100 =0,101*2 10
111,1001*2 10 =0,111001*2 101
0,01101*2 -11 =0,1101*2 -100
11,1011*2 -101 =0,11011*2 -11

Podczas dodawania liczb zmiennoprzecinkowych wyrównanie rzędów odbywa się w kierunku wyższego rzędu:

Algorytm dodawania zmiennoprzecinkowego:

  1. Wyrównanie zamówień;
  2. Dodanie mantys w dodatkowym zmodyfikowanym kodzie;
  3. Normalizacja wyniku.

Przykład nr 4.
A=0,1011*2 10 , B=0,0001*2 11
1. Wyrównanie zamówień;
A=0,01011*2 11 , B=0,0001*2 11
2. Dodanie mantys w dodatkowym zmodyfikowanym kodzie;
MA dodatek mod. =00.01011
MB dodatkowy mod. =00,0001
00,01011
+ 00,00010
=
00,01101
A+B=0,01101*2 11
3. Normalizacja wyniku.
A+B=0,1101*2 10

Przykład nr 3. Zapisz liczbę dziesiętną w notacji binarno-dziesiętnej i dodaj dwie liczby w notacji binarnej.

Przykłady przekładania liczb na różne systemy liczbowe

Przykład 1
Zamieńmy liczbę 12 z dziesiętnego na dwójkowy
Rozwiązanie

Zamieńmy liczbę 12 10 na system dwuargumentowy, stosując kolejne dzielenie przez 2, aż iloraz niepełny będzie równy zeru. Wynikiem będzie liczba z pozostałej części dzielenia zapisana od prawej do lewej.

12 : 2 = 6 reszta: 0
6 : 2 = 3 reszta: 0
3 : 2 = 1 reszta: 1
1 : 2 = 0 reszta: 1

12 10 = 1100 2

Przykład nr 2
Przetłumaczmy liczbę 12,3 z systemu dziesiętnego na dwójkowy

12.3 10 = 1100.010011001100110011001100110011 2

Rozwiązanie

Przetłumaczmy część całkowitą 12 liczby 12,3 · 10 na system liczb dwuargumentowych, stosując kolejne dzielenie przez 2, aż iloraz niepełny będzie równy zeru. Wynikiem będzie liczba z pozostałej części dzielenia zapisana od prawej do lewej.

12 : 2 = 6 reszta: 0
6 : 2 = 3 reszta: 0
3 : 2 = 1 reszta: 1
1 : 2 = 0 reszta: 1

12 10 = 1100 2

Przetłumaczmy część ułamkową 0,3 liczby 12,3 · 10 na dwucyfrowy system liczbowy, stosując sekwencyjne mnożenie przez 2, aż część ułamkowa iloczynu okaże się równa zero lub osiągnięta zostanie wymagana liczba miejsc po przecinku. Jeżeli w wyniku mnożenia część całkowita nie jest równa zeru, to należy zastąpić wartość części całkowitej zerem. Wynikiem będzie liczba całkowitych części produktów, zapisanych od lewej do prawej.

0.3 · 2 = 0 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2

0.3 10 = 0.010011001100110011001100110011 2
12.3 10 = 1100.010011001100110011001100110011 2

Przykład nr 3
Przekształćmy liczbę 10011 z systemu dwójkowego na dziesiętny
Rozwiązanie

Przetłumaczmy liczbę 10011 2 na dziesiętny system liczbowy, w tym celu najpierw zapisujemy pozycję każdej cyfry w liczbie od prawej do lewej, zaczynając od zera

Każda pozycja cyfry będzie potęgą liczby 2, ponieważ system liczbowy jest dwuargumentowy. Należy kolejno pomnożyć każdą liczbę 10011 2 przez 2 do potęgi odpowiedniej pozycji liczby, a następnie dodać ją z kolejnym iloczynem kolejnej liczby do potęgi odpowiadającej jej pozycji.

10011 2 = 1 ⋅ 2 4 + 0 ⋅ 2 3 + 0 ⋅ 2 2 + 1 ⋅ 2 1 + 1 ⋅ 2 0 = 19 10

Przykład nr 4
Przetłumaczmy liczbę 11,101 z systemu dwójkowego na dziesiętny

11.101 2 = 3.625 10

Rozwiązanie

Przetłumaczmy liczbę 11.101 2 na dziesiętny system liczbowy, w tym celu najpierw zapisujemy pozycję każdej cyfry w liczbie

Każda pozycja cyfry będzie potęgą liczby 2, ponieważ system liczbowy jest dwuargumentowy. Należy kolejno pomnożyć każdą liczbę 11,101 2 przez 2 do potęgi odpowiedniej pozycji liczby, a następnie dodać ją z kolejnym iloczynem kolejnej liczby do potęgi odpowiadającej jej pozycji.

11.101 2 = 1 ⋅ 2 1 + 1 ⋅ 2 0 + 1 ⋅ 2 -1 + 0 ⋅ 2 -2 + 1 ⋅ 2 -3 = 3.625 10

Przykład nr 5
Przekształćmy liczbę 1583 z systemu dziesiętnego na szesnastkowy

1583 10 = 62F 16

Rozwiązanie

Przetłumaczmy liczbę 1583 10 na 16-arowy system liczbowy, stosując kolejne dzielenie przez 16, aż iloraz niepełny będzie równy zeru. Wynikiem będzie liczba z pozostałej części dzielenia zapisana od prawej do lewej.

1583 : 16 = 98 reszta: 15, 15 = F
98 : 16 = 6 reszta: 2
6 : 16 = 0 reszta: 6

1583 10 = 62F 16

Przykład nr 6
Przetłumaczmy liczbę 1583,56 z systemu dziesiętnego na system liczb szesnastkowych

1583,56 10 = 62F.8F5C28F5C28F5C28F5C28F5C28F5C2 16

Rozwiązanie

Przetłumaczmy część całkowitą 1583 liczby 1583,56 10 na system 16-cyfrowy, stosując kolejne dzielenie przez 16, aż iloraz niepełny będzie równy zeru. Wynikiem będzie liczba z pozostałej części dzielenia zapisana od prawej do lewej.

1583 : 16 = 98 reszta: 15, 15 = F
98 : 16 = 6 reszta: 2
6 : 16 = 0 reszta: 6

1583 10 = 62F 16

Przetłumaczmy część ułamkową 0,56 liczby 1583,56 10 na system 16-cyfrowy, stosując sekwencyjne mnożenie przez 16, aż część ułamkowa iloczynu okaże się równa zero lub osiągnięta zostanie wymagana liczba miejsc po przecinku. Jeżeli w wyniku mnożenia część całkowita nie jest równa zeru, to należy zastąpić wartość części całkowitej zerem. Wynikiem będzie liczba całkowitych części produktów, zapisanych od lewej do prawej.

0.56 · 16 = 8 .96
0.96 · 16 = 15,36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15,36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15,36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15,36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15,36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15,36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56

0,56 10 = 0,8F5C28F5C28F5C28F5C28F5C28F5C2 16
1583,56 10 = 62F.8F5C28F5C28F5C28F5C28F5C28F5C2 16

Przykład #7
Przekształćmy liczbę A12DCF z systemu szesnastkowego na dziesiętny

A12DCF 16 = 10563023 10

Rozwiązanie

Przekształćmy liczbę A12DCF 16 na dziesiętny system liczbowy, w tym celu najpierw zapisujemy pozycję każdej cyfry w liczbie od prawej do lewej, zaczynając od zera

Każda pozycja cyfry będzie potęgą 16, ponieważ system liczbowy to 16. Należy kolejno pomnożyć każdą liczbę A12DCF 16 przez 16 do potęgi odpowiedniej pozycji liczby, a następnie dodać z kolejnym iloczynem kolejnej liczby do potęgi odpowiadającej jej pozycji.
2

1 0 -1 -2 -3 NumerA1 2 DCF1 2 A
Każda pozycja cyfry będzie potęgą 16, ponieważ system liczbowy to 16. Należy kolejno pomnożyć każdą liczbę A12DCF.12A 16 przez 16 do potęgi odpowiadającej jej pozycji, a następnie dodać kolejny iloczyn następnej liczby do potęgi odpowiadającej jej pozycji.
A 16 = 10 10
D16 = 13 10
do 16 = 12 10
fa 16 = 15 10

A12DCF.12A 16 = 10 ⋅ 16 5 + 1 ⋅ 16 4 + 2 ⋅ 16 3 + 13 ⋅ 16 2 + 12 ⋅ 16 1 + 15 ⋅ 16 0 + 1 ⋅ 16 -1

1 0 Numer1 0 1 0 1 0 0 0 1 1
Każda pozycja cyfry będzie potęgą liczby 2, ponieważ system liczbowy jest dwuargumentowy. Każdą liczbę 1010100011 2 należy kolejno pomnożyć przez 2 do potęgi odpowiadającej jej pozycji, a następnie dodać ją przez kolejny iloczyn następnej liczby do potęgi odpowiadającej jej pozycji.

1010100011 2 = 1 ⋅ 2 9 + 0 ⋅ 2 8 + 1 ⋅ 2 7 + 0 ⋅ 2 6 + 1 ⋅ 2 5 + 0 ⋅ 2 4 + 0 ⋅ 2 3 + 0 ⋅ 2 2 + 1 ⋅ 2 1 + 1 ⋅ 2 0 = 675 10

Przetłumaczmy liczbę 675 10 na system 16-cyfrowy, stosując kolejne dzielenie przez 16, aż iloraz częściowy będzie równy zeru. Wynikiem będzie liczba z pozostałej części dzielenia zapisana od prawej do lewej.

675 : 16 = 42 reszta: 3
42 : 16 = 2 reszta: 10, 10 = A
2 : 16 = 0 reszta: 2

675 10 = 2A3 16 Przydział usług. Usługa ma na celu tłumaczenie liczb z jednego systemu liczbowego na inny online. W tym celu wybierz bazę systemu, z którego chcesz przetłumaczyć numer. Można wprowadzać zarówno liczby całkowite, jak i liczby z przecinkiem.

Możesz wprowadzić liczby całkowite, takie jak 34 , lub ułamkowe, takie jak 637,333 . W przypadku liczb ułamkowych podana jest dokładność tłumaczenia po przecinku.

Z tym kalkulatorem używane są również:

Sposoby reprezentacji liczb

Dwójkowy liczby (binarne) - każda cyfra oznacza wartość jednego bitu (0 lub 1), najbardziej znaczący bit zapisywany jest zawsze z lewej strony, po liczbie umieszczana jest litera „b”. Dla ułatwienia percepcji zeszyty można oddzielić spacjami. Na przykład 1010 0101b.
Szesnastkowy liczby (heksadecymalne) - każda tetrada jest reprezentowana przez jeden znak 0...9, A, B, ..., F. Taka reprezentacja może być oznaczona na różne sposoby, tutaj użyto tylko znaku "h" po ostatnim cyfra szesnastkowa. Na przykład A5h. W tekstach programów ten sam numer może być oznaczony zarówno jako 0xA5, jak i 0A5h, w zależności od składni języka programowania. Nieznaczące zero (0) jest dodawane po lewej stronie najbardziej znaczącej cyfry szesnastkowej reprezentowanej przez literę, aby odróżnić cyfry od nazw symbolicznych.
dziesiętne liczby (dziesiętne) - każdy bajt (słowo, podwójne słowo) jest reprezentowany przez zwykłą liczbę, a znak reprezentacji dziesiętnej (litera „d”) jest zwykle pomijany. Bajt z poprzednich przykładów ma wartość dziesiętną równą 165. W przeciwieństwie do notacji binarnej i szesnastkowej, w przypadku zapisu dziesiętnego trudno jest mentalnie określić wartość każdego bitu, co czasem trzeba zrobić.
ósemkowy liczby (ósemkowe) - każda trójka bitów (separacja zaczyna się od najmniej znaczącej) zapisywana jest jako liczba 0-7, na końcu stawiany jest znak "o". Ta sama liczba zostałaby zapisana jako 245o. System ósemkowy jest niewygodny, ponieważ bajt nie może być równo podzielony.

Algorytm konwersji liczb z jednego systemu liczbowego na inny

Konwersja liczb całkowitych dziesiętnych na dowolny inny system liczbowy odbywa się poprzez podzielenie liczby przez podstawę nowego systemu liczbowego, aż reszta pozostawi liczbę mniejszą niż podstawa nowego systemu liczbowego. Nowa liczba jest zapisywana jako reszta z dzielenia, zaczynając od ostatniej.
Konwersja prawidłowego ułamka dziesiętnego na inny PSS odbywa się poprzez pomnożenie tylko części ułamkowej liczby przez podstawę nowego systemu liczbowego, aż wszystkie zera pozostaną w części ułamkowej lub do osiągnięcia określonej dokładności translacji. W wyniku każdej operacji mnożenia powstaje jedna cyfra nowej liczby, zaczynając od najwyższej.
Tłumaczenie ułamka niewłaściwego odbywa się zgodnie z pierwszą i drugą zasadą. Części całkowite i ułamkowe są zapisywane razem, oddzielone przecinkiem.

Przykład 1.



Tłumaczenie z systemu liczbowego od 2 do 8 do 16.
Systemy te są wielokrotnościami dwójki, dlatego tłumaczenie odbywa się przy użyciu tabeli korespondencji (patrz poniżej).

Aby przekonwertować liczbę z systemu liczb binarnych na liczbę ósemkową (szesnastkową), konieczne jest podzielenie liczby binarnej na grupy po trzy (cztery w przypadku systemu szesnastkowego) cyfry od przecinka po prawej i lewej stronie, uzupełniając skrajne grupy zerami Jeśli to konieczne. Każda grupa jest zastępowana odpowiednią cyfrą ósemkową lub szesnastkową.

Przykład nr 2. 1010111010.1011 = 1.010.111.010.101.1 = 1272,51 8
tutaj 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

Podczas konwersji na system szesnastkowy należy podzielić liczbę na części, po cztery cyfry każda, zgodnie z tymi samymi zasadami.
Przykład nr 3. 1010111010.1011 = 10.1011.1010.1011 = 2B12.13 HEX
tutaj 0010=2; 1011=B; 1010=12; 1011=13

Zamiana liczb z 2, 8 i 16 na system dziesiętny odbywa się poprzez rozbicie liczby na osobne i pomnożenie jej przez podstawę układu (z którego liczba jest tłumaczona) podniesioną do potęgi odpowiadającej jej liczbie porządkowej w przetłumaczonym numerze. W tym przypadku cyfry są numerowane po lewej stronie przecinka dziesiętnego (pierwsza liczba ma cyfrę 0) wraz ze wzrostem, a po prawej stronie wraz ze spadkiem (czyli ze znakiem ujemnym). Otrzymane wyniki są sumowane.

Przykład nr 4.
Przykład konwersji z systemu liczb binarnych na system dziesiętny.

1010010.101 2 = 1 2 6 +0 2 5 +1 2 4 +0 2 3 +0 2 2 +1 2 1 +0 2 0 + 1 2 -1 +0 2 - 2 +1 2 -3 =
= 64+0+16+0+0+2+0+0,5+0+0,125 = 82,625 10 Przykład konwersji z systemu ósemkowego na dziesiętny. 108,5 8 = 1* 8 2 +0 8 1 +8 8 0 + 5 8 -1 = 64+0+8+0,625 = 72,625 10 Przykład konwersji z systemu szesnastkowego na dziesiętny. 108,5 16 = 1 16 2 +0 16 1 +8 16 0 + 5 16 -1 = 256+0+8+0,3125 = 264,3125 10

Ponownie powtarzamy algorytm tłumaczenia liczb z jednego systemu liczbowego na inny PSS

  1. Z systemu liczb dziesiętnych:
    • podziel liczbę przez podstawę tłumaczonego systemu liczbowego;
    • znajdź resztę po podzieleniu części całkowitej liczby;
    • zapisz wszystkie reszty z dzielenia w odwrotnej kolejności;
  2. Z systemu binarnego
    • Aby przekonwertować na system liczb dziesiętnych, musisz znaleźć sumę iloczynów podstawy 2 przez odpowiedni stopień rozładowania;
    • Aby przekonwertować liczbę na ósemkową, musisz podzielić liczbę na triady.
      Na przykład 1000110 = 1000 110 = 106 8
    • Aby przekonwertować liczbę z binarnej na szesnastkową, musisz podzielić liczbę na grupy po 4 cyfry.
      Na przykład 1000110 = 100 0110 = 46 16
System nazywa się pozycyjnym., dla których znaczenie lub waga cyfry zależy od jej położenia w liczbie. Relacje między systemami przedstawiono w tabeli.
Tabela zgodności systemów liczbowych:
Binarne SSSzesnastkowy SS
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 mi
1111 F

Tabela konwersji na system liczb ósemkowych

Przykład nr 2. Zamień liczbę 100,12 z dziesiętnej na ósemkową i odwrotnie. Wyjaśnij przyczyny rozbieżności.
Rozwiązanie.
Scena 1. .

Pozostała część podziału jest zapisywana w odwrotnej kolejności. Otrzymujemy liczbę w ósmym systemie liczbowym: 144
100 = 144 8

Aby przetłumaczyć część ułamkową liczby, mnożymy kolejno część ułamkową przez podstawę 8. W rezultacie za każdym razem zapisujemy część całkowitą iloczynu.
0,12*8 = 0,96 (cała część 0 )
0,96*8 = 7,68 (cała część 7 )
0,68*8 = 5,44 (cała część 5 )
0,44*8 = 3,52 (cała część 3 )
Otrzymujemy liczbę w ósmym systemie liczbowym: 0753.
0.12 = 0.753 8

100,12 10 = 144,0753 8

Etap 2. Konwersja liczby z dziesiętnej na ósemkową.
Odwróć konwersję z ósemkowego na dziesiętny.

Aby przetłumaczyć część całkowitą, należy pomnożyć cyfrę liczby przez odpowiedni stopień cyfry.
144 = 8 2 *1 + 8 1 *4 + 8 0 *4 = 64 + 32 + 4 = 100

Aby przetłumaczyć część ułamkową, konieczne jest podzielenie cyfry liczby przez odpowiedni stopień cyfry
0753 = 8 -1 *0 + 8 -2 *7 + 8 -3 *5 + 8 -4 *3 = 0.119873046875 = 0.1199

144,0753 8 = 100,96 10
Różnica 0,0001 (100,12 - 100,1199) wynika z błędu zaokrąglenia podczas konwersji na ósemkowy. Ten błąd można zmniejszyć, jeśli weźmiemy większą liczbę cyfr (na przykład nie 4, ale 8).

Notatka:
Możesz wykonywać czynności tylko w jednym systemie liczbowym, jeśli masz różne systemy liczbowe, najpierw przetłumacz wszystkie liczby na jeden system liczbowy
Jeśli pracujesz z systemem liczbowym, którego podstawa jest większa niż 10 i napotkałeś w przykładzie literę, zastąp ją mentalnie liczbą w systemie dziesiętnym, wykonaj niezbędne operacje i przekształć wynik z powrotem na oryginalny system liczbowy

Dodatek:
Wszyscy pamiętają, jak w podstawówce uczono nas ustawiać w kolumnie, rozładowywać za rozładowywać. Jeśli dodanie w wypisie skutkowało liczbą większą niż 9, odejmowaliśmy od niej 10, wynik zapisywaliśmy w odpowiedzi, a 1 doliczaliśmy do kolejnego wypisu. Z tego możemy sformułować regułę:

  1. Wygodniej jest złożyć „kolumnę”
  2. Sumując bit po bicie, jeśli cyfra w cyfrze > jest większa niż największa cyfra alfabetu danego systemu liczbowego, odejmujemy od tej liczby podstawę systemu liczbowego.
  3. Wynik jest zapisywany w żądanej kategorii
  4. Dodaj jeden do następnej cyfry
Przykład:

Dodaj 1001001110 i 100111101 binarnie

1001001110

100111101

1110001011

Odpowiedź: 1110001011

Dodaj F3B i 5A w systemie szesnastkowym

FE0

Odpowiedź: FE0


Odejmowanie: Wszyscy pamiętają, jak w podstawówce uczono nas odejmować kolumnę, wypis od wypisu. Jeśli podczas odejmowania cyfry uzyskano liczbę mniejszą niż 0, wówczas „pożyczyliśmy” jednostkę od najwyższej cyfry i dodaliśmy 10 do żądanej liczby, odjęliśmy żądaną liczbę od nowej liczby. Z tego możemy sformułować regułę:

  1. Odejmij wygodniej „kolumnę”
  2. Odejmowanie bitowe, jeśli cyfra jest w cyfrze< 0, вычитаем из старшего разряда 1, а к нужному разряду прибавляем основание системы счисления.
  3. Odejmowanie
Przykład:

Odejmij 100111101 od 1001001110 w systemie binarnym

1001001110

100111101

100010001

Odpowiedź: 100010001

Odejmij szesnastkowe 5A od F3B

D96

Odpowiedź: D96

Co najważniejsze, nie zapominaj, że masz do dyspozycji tylko liczby tego systemu liczbowego, tylko nie zapomnij o przejściach między terminami bitowymi.
Mnożenie:

Mnożenie w innych systemach liczbowych odbywa się dokładnie w taki sam sposób, jak mnożenie.

  1. Wygodniej jest pomnożyć przez „kolumnę”
  2. Mnożenie w dowolnym systemie liczbowym podlega tym samym zasadom, co w systemie dziesiętnym. Ale możemy używać tylko alfabetu podanego przez system liczbowy
Przykład:

Pomnóż 10111 przez 1101 binarnie

10111

1101

10111

10111

10111

100101011

Odpowiedź: 100101011

Pomnóż F3B przez A w systemie szesnastkowym

F3B

984E

Odpowiedź: 984E

Odpowiedź: 984E

Co najważniejsze, nie zapominaj, że masz do dyspozycji tylko liczby tego systemu liczbowego, tylko nie zapomnij o przejściach między terminami bitowymi.

Dział:

Dzielenie w innych systemach liczbowych odbywa się dokładnie w taki sam sposób, w jaki jesteśmy przyzwyczajeni do dzielenia.

  1. Wygodniej jest udostępniać w „kolumnie”
  2. Dzielenie w dowolnym systemie liczbowym odbywa się według tych samych zasad, co w systemie dziesiętnym. Ale możemy używać tylko alfabetu podanego przez system liczbowy

Przykład:

Podziel 1011011 przez 1101 binarnie

Dzielić F3 B do numeru 8 w szesnastkowym systemie liczbowym

Co najważniejsze, nie zapominaj, że masz do dyspozycji tylko liczby tego systemu liczbowego, tylko nie zapomnij o przejściach między terminami bitowymi.

NIEPOZYCYJNE

Niepozycyjne systemy liczbowe

Niepozycyjne systemy liczbowe pojawiły się historycznie jako pierwsze. W tych systemach wartość każdego symbolu cyfrowego jest stała i nie zależy od jego pozycji. Najprostszym przypadkiem systemu niepozycyjnego jest pojedynczy, dla którego do oznaczenia liczb używa się jednego symbolu, z reguły jest to linia, czasem kropka, na której zawsze umieszczana jest liczba odpowiadająca wyznaczonej liczbie:

  • 1 - |
  • 2 - ||
  • 3 - |||, itd.

Więc ta pojedyncza postać ma znaczenie jednostki, z którego wymaganą liczbę uzyskuje się przez kolejne dodawanie:

||||| = 1+1+1+1+1 = 5.

Modyfikacją układu jednostek jest układ z podstawą, w którym znajdują się symbole nie tylko do oznaczenia jednostki, ale również stopni podstawy. Na przykład, jeśli liczba 5 zostanie przyjęta jako podstawa, pojawią się dodatkowe znaki wskazujące 5, 25, 125 i tak dalej.

Przykładem takiego systemu o podstawie 10 jest system starożytnego Egiptu, który powstał w drugiej połowie trzeciego tysiąclecia pne. Ten system miał następujące hieroglify:

  • sześć - jednostki,
  • łuk - dziesiątki,
  • liść palmowy - setki,
  • kwiat lotosu - tysiące.

Liczby uzyskano przez proste dodawanie, kolejność może być dowolna. Tak więc, aby wyznaczyć na przykład liczbę 3815, narysowali trzy kwiaty lotosu, osiem liści palmowych, jeden łuk i pięć tyczek. Bardziej złożone systemy z dodatkowymi znakami - starogrecki, rzymski. Rzymski wykorzystuje również element systemu pozycyjnego - dodaje się dużą liczbę przed mniejszą, odejmuje mniejszą przed większą: IV \u003d 4, ale VI \u003d 6, ta metoda, jest jednak używany wyłącznie do wskazania liczb 4, 9, 40, 90, 400, 900, 4000 i ich pochodnych przez dodanie.

Współczesne systemy greckie i staroruskie używały 27 liter alfabetu jako liczb, gdzie oznaczały każdą liczbę od 1 do 9, a także dziesiątki i setki. Takie podejście umożliwiło pisanie liczb od 1 do 999 bez powtarzania cyfr.

W starym systemie rosyjskim do oznaczania dużych liczb używano specjalnych ramek wokół liczb.

Niepozycyjny system numeracji jest nadal używany prawie wszędzie jako słowny system numeracji. Werbalne systemy liczbowe są silnie związane z językiem, a ich wspólne elementy odnoszą się głównie do ogólnych zasad i nazw dużych liczb (bilionów i więcej). Ogólne zasady leżące u podstaw współczesnej numeracji werbalnej zakładają tworzenie oznaczenia poprzez dodawanie i mnożenie znaczeń niepowtarzalnych nazw.

Za pomocą tego kalkulatora online możesz konwertować liczby całkowite i ułamkowe z jednego systemu liczbowego na inny. Podano szczegółowe rozwiązanie wraz z objaśnieniami. Aby przetłumaczyć, wprowadź oryginalny numer, ustaw podstawę systemu liczbowego oryginalnego numeru, ustaw podstawę systemu liczbowego, na który chcesz przekonwertować liczbę i kliknij przycisk „Przetłumacz”. Zobacz część teoretyczną i przykłady liczbowe poniżej.

Wynik został już odebrany!

Przeliczanie liczb całkowitych i ułamkowych z jednego systemu liczbowego na inny - teoria, przykłady i rozwiązania

Istnieją pozycyjne i niepozycyjne systemy liczbowe. Arabski system liczbowy, którym posługujemy się na co dzień, jest pozycyjny, podczas gdy rzymski nie. W systemach liczb pozycyjnych pozycja liczby jednoznacznie określa wielkość liczby. Rozważ to na przykładzie liczby 6372 w systemie liczb dziesiętnych. Ponumerujmy tę liczbę od prawej do lewej, zaczynając od zera:

Wtedy 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 pozycji danej liczby są przyjmowane jako stopnie.

Rozważmy rzeczywistą liczbę dziesiętną 1287,923. Numerujemy go zaczynając od pozycji zerowej liczby od przecinka dziesiętnego w lewo i w prawo:

Wtedy 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 n S n + do n-1 S n-1 +...+C 1 S 1 + do 0 s 0 + re -1 s -1 + re -2 s -2 + ... + re -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 zestawu cyfr (0,1,2,3,4,5,6,7,8,9), w systemie ósemkowym składa się z zestaw cyfr (0,1, 2,3,4,5,6,7), w systemie dwójkowym - 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ą numerom 10,11, 12,13,14,15 W tabeli 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 przetłumaczyć liczby z jednego systemu liczbowego na inny, najłatwiej jest najpierw przekonwertować liczbę na system liczb dziesiętnych, a następnie przetłumaczyć ją z systemu liczb dziesiętnych na wymagany system liczbowy.

Konwersja liczb z dowolnego systemu liczbowego na dziesiętny system liczbowy

Korzystając ze wzoru (1), możesz przekonwertować liczby z dowolnego systemu liczbowego na system liczb dziesiętnych.

Przykład 1. Przelicz 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. Zamień liczbę 1011101.001 z systemu liczb ósemkowych (SS) na dziesiętny SS. Rozwiązanie:

Przykład 3 . Przekształć liczbę AB572.CDF z szesnastkowego na dziesiętny SS. Rozwiązanie:

Tutaj A-zastąpione przez 10, B- o godzinie 11, C- o godzinie 12, F- o 15.

Konwersja liczb z dziesiętnego systemu liczbowego na inny system liczbowy

Aby przekonwertować liczby z dziesiętnego systemu liczbowego na inny system liczbowy, musisz osobno przetłumaczyć część całkowitą liczby i część ułamkową liczby.

Część całkowita liczby jest tłumaczona z dziesiętnego SS na inny system liczbowy - poprzez kolejne dzielenie części całkowitej liczby przez podstawę systemu liczbowego (dla SS dwójkowego - przez 2, dla SS 8-cyfrowego - przez 8, dla 16-cyfrowego - o 16 itd.), aby uzyskać całą resztę, mniejszą niż podstawa SS.

Przykład 4 . Przetłumaczmy 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 po podzieleniu przez 2 daje iloraz 79, a reszta to 1. Ponadto liczba 79 po podzieleniu przez 2 daje iloraz 39, a reszta to 1 i tak dalej. W rezultacie konstruując liczbę z reszty dzielenia (od prawej do lewej) otrzymujemy liczbę w systemie binarnym SS: 10011111 . Dlatego możemy napisać:

159 10 =10011111 2 .

Przykład 5 . Zamieńmy 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ż do uzyskania reszty całkowitej mniejszej niż 8. W rezultacie budując liczbę z reszty dzielenia (od prawej do lewej) uzyskać liczbę w ósemkowym SS: 1147 (patrz ryc. 2). Dlatego możemy napisać:

615 10 =1147 8 .

Przykład 6 . Przetłumaczmy liczbę 19673 z systemu dziesiętnego na szesnastkowy SS.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Jak widać na rysunku 3, dzieląc kolejno liczbę 19673 przez 16, otrzymaliśmy reszty 4, 12, 13, 9. W szesnastkowym systemie liczbowym liczba 12 odpowiada C, liczba 13 - D. Dlatego nasza liczba szesnastkowa to 4CD9.

Aby zamienić poprawne ułamki dziesiętne (liczbę rzeczywistą z zerową częścią całkowitą) na system liczbowy o podstawie s, należy tę liczbę kolejno mnożyć przez s, aż część ułamkowa będzie równa zeru lub otrzymamy wymaganą liczbę cyfr. Jeżeli w wyniku mnożenia otrzymamy liczbę z częścią całkowitą różną od zera, to ta część całkowita nie jest brana pod uwagę (są kolejno uwzględniane w wyniku).

Spójrzmy na powyższe z przykładami.

Przykład 7 . Przetłumaczmy 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ć z rys. 4, liczbę 0,214 mnoży się kolejno przez 2. Jeżeli wynikiem mnożenia jest liczba z częścią całkowitą różną od zera, to część całkowitą zapisujemy oddzielnie (na lewo od liczby), a liczba jest zapisywana z zerową częścią całkowitą. Jeśli po pomnożeniu otrzymamy liczbę z zerową częścią całkowitą, to zero jest zapisywane po lewej stronie. Proces mnożenia trwa do momentu uzyskania czystego zera w części ułamkowej lub uzyskania wymaganej liczby cyfr. Pisząc pogrubione liczby (ryc. 4) od góry do dołu, otrzymujemy wymaganą liczbę w systemie dwójkowym: 0. 0011011 .

Dlatego możemy napisać:

0.214 10 =0.0011011 2 .

Przykład 8 . Przetłumaczmy liczbę 0,125 z systemu liczb dziesiętnych na system binarny SS.

0.125
X 2
0 0.25
X 2
0 0.5
X 2
1 0.0

Aby przeliczyć liczbę 0,125 z dziesiętnej SS na binarną, liczbę tę kolejno mnoży się przez 2. W trzecim etapie uzyskano 0. Uzyskano zatem następujący wynik:

0.125 10 =0.001 2 .

Przykład 9 . Przetłumaczmy liczbę 0,214 z systemu dziesiętnego 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

Po przykładach 4 i 5 otrzymujemy liczby 3, 6, 12, 8, 11, 4. Ale w szesnastkowym SS liczby C i B odpowiadają liczbom 12 i 11. Mamy zatem:

0,214 10 = 0,36C8B4 16 .

Przykład 10 . Przetłumaczmy 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

Dostał:

0.512 10 =0.406111 8 .

Przykład 11 . Przetłumaczmy liczbę 159,125 z systemu dziesiętnego na binarny SS. W tym celu osobno tłumaczymy część całkowitą liczby (Przykład 4) i część ułamkową liczby (Przykład 8). Łącząc te wyniki, otrzymujemy:

159.125 10 =10011111.001 2 .

Przykład 12 . Przetłumaczmy liczbę 19673,214 z systemu dziesiętnego na szesnastkowy SS. W tym celu osobno tłumaczymy część całkowitą liczby (Przykład 6) i część ułamkową liczby (Przykład 9). Dalsze połączenie tych wyników otrzymujemy.

mob_info