W jaki sposób liczby ujemne są przechowywane w pamięci komputera? Format zmiennoprzecinkowy

Liczby rzeczywiste w obliczeniach matematycznych nie mają ograniczeń co do zakresu i precyzji reprezentacji liczb. Jednak w komputerach liczby są przechowywane w rejestrach i lokalizacjach pamięci o ograniczonej liczbie cyfr. Dlatego dokładność reprezentacja liczby rzeczywiste, można sobie wyobrazić w samochodzie, jest skończona, a zakres jest ograniczony.

Podczas zapisywania liczb rzeczywistych w programach zwyczajowo używa się kropki zamiast zwykłego przecinka. Dowolną liczbę rzeczywistą można przedstawić w postaci liczb z porządkiem podstawowym systemu liczbowego.

Przykład 4.4. Liczbę dziesiętną 1,756 w postaci zapisu liczb z porządkiem podstaw systemu liczbowego można przedstawić w następujący sposób:

1.756 . 10 0 = 0.1756 . 10 1 = 0.01756 . 10 2 = ...

17.56 . 10 -1 = 175.6 . 10 -2 = 1756.0 . 10 -3 = ... .

Reprezentacja zmiennoprzecinkowa zwaną reprezentacją liczbową N w systemie liczbowym z podstawą Q Jak :

N = m* . q str ,

Gdzie M - mnożnik zawierający wszystkie cyfry liczby (mantysa), P - liczba całkowita zwana porządkiem.

Jeżeli „zmiennoprzecinkowy” punkt mantysy znajduje się przed pierwszą znaczącą cyfrą, to przy ustalonej liczbie cyfr przypisanych do mantysy rejestrowana jest maksymalna liczba cyfr znaczących liczby, czyli maksymalna dokładność liczby reprezentacja w maszynie.

Jeżeli w mantysie pierwsza cyfra po kropce (przecinku) jest różna od zera, wówczas taką liczbę nazywa się znormalizowany .

Mantysa i porządek Q Zwyczajowo zapisuje się liczbę -ary w systemie radix Q , a sama podstawa jest w systemie dziesiętnym.

Przykład 4.5. Oto przykłady znormalizowanej reprezentacji liczby w systemie dziesiętnym:

2178.01 =0.217801 * 10 4

0.0045 =0.45 * 10 -2

Przykłady w formacie binarnym:

10110,01= 0,1011001 * 2 101 (kolejność 101 2 = 5 10)

Nowoczesne komputery obsługują kilka międzynarodowych standardowych formatów przechowywania rzeczywistych liczb zmiennoprzecinkowych, różniących się precyzją, ale wszystkie mają tę samą strukturę. Liczba rzeczywista składa się z trzech części: znaku mantysy, przesuniętej kolejności i mantysy:

Charakterystyka N-bitowa liczba znormalizowana jest obliczana w następujący sposób: jeśli zlecenie jest przydzielone k cyfr, następnie do prawdziwej wartości rzędu reprezentowanego w kodzie uzupełnienia do dwójki dodawane jest przesunięcie równe (2 k -1 -1).

Zatem zlecenie przyjmujące wartości z zakresu -128 do +127 jest konwertowane na zamówienie obciążone z zakresu od 0 do 255. Zlecenie obciążone jest przechowywane jako liczba bez znaku, co upraszcza porównywanie, dodawanie i odejmowanie zleceń , a także upraszcza operację porównywania samych znormalizowanych liczb.

Liczba cyfr przypisanych do zamówienia wpływa na zakres od najmniejszej niezerowej liczby do największej liczby reprezentowanej w maszynie w danym formacie. Oczywiście im więcej cyfr przypisano mantysie, tym większa jest dokładność reprezentacji liczb. Ponieważ dla znormalizowanych liczb rzeczywistych najbardziej znaczącym bitem mantysy jest zawsze 1, ten najbardziej znaczący bit nie jest przechowywany w pamięci.

Dowolna binarna liczba całkowita zawierająca co najwyżej M cyfry można przekonwertować na format rzeczywisty bez zniekształceń.

Tabela 4.3. Standardowe formaty przedstawiania liczb rzeczywistych

Przykład 4.6. Reprezentacja znormalizowanych liczb w jednym formacie.

Zilustrujmy, jak będzie przechowywana liczba 37,16 10. Przy konwersji na liczbę binarną nie powstaje dokładne tłumaczenie 100101,(00101000111101011100) - część ułamkowa ujęta w nawiasy jest powtarzana w kropce.

Konwertujemy liczbę do postaci znormalizowanej: 0,100101(00101000111101011100) * 2 110

Przedstawmy liczbę rzeczywistą w formacie 32-bitowym:

1. Znakiem liczby jest „+”, dlatego w bicie znaku (31) wpisujemy 0;

2. Aby ustalić porządek, przydziela się 8 bitów; do prawdziwej wartości rzędu przedstawionej w kodzie uzupełniającym dodajemy przesunięcie (2 7 -1) = 127. Ponieważ zamówienie jest dodatnie, kod zamówienia bezpośredniego pokrywa się z zamówieniem dodatkowym, obliczmy przesunięte zamówienie: 00000110 + 01111111=10000101

Wprowadzamy powstałą przesuniętą kolejność.

3. Wpisujemy mantysę i usuwamy najwyższą cyfrę mantysy (zawsze jest równa 1);

przesunięty porządek

mantysa

W tym przykładzie udało nam się przesłać tylko 24 bity; reszta została utracona z powodu utraty precyzji przedstawiania liczby.

Gdybyśmy mogli zajrzeć do zawartości pamięci komputera, zobaczylibyśmy co następuje:

Liczba ta odzwierciedla Zasada nr 1: Dane (i programy) w pamięci komputera przechowywane są w postaci binarnej, tj. w postaci łańcuchów zer i jedynek.

Zasada nr 2:dyskretna reprezentacja danych w komputerze.

Czym jest dyskrecja?

Najbliższa odpowiedź: „Oddzielne”

Uwaga: Zbiór dyskretny składa się z elementów oddzielonych od siebie. Na przykład piasek jest dyskretny, ponieważ składa się z pojedynczych ziaren piasku. Ale woda lub olej są ciągłe (w ramach naszych wrażeń, ponieważ nadal nie możemy wyczuć poszczególnych cząsteczek)

Przykładowo obraz konstruowany jest jako zbiór punktów, tj. dyskretnie.

Zasada nr 3:zbiór wielkości możliwych do przedstawienia w pamięci jest ograniczony i skończony.

Reprezentowanie liczb na komputerze.

Liczby całkowite w komputerze. (Format ze stałym punktem)

Każde urządzenie komputerowe (komputer, kalkulator) może pracować tylko z ograniczonym zestawem liczb całkowitych. Spójrz na wyświetlacz kalkulatora, zawiera on 10 znaków. Największa liczba dodatnia, jaką można umieścić na tablicy wyników:

9

9

9

9

9

9

9

9

9

Największa liczba ujemna w wartości bezwzględnej:

9

9

9

9

9

9

9

9

9

W komputerze sytuacja jest podobna.

Na przykład, jeśli na liczbę całkowitą przydzielona zostanie komórka pamięci o długości 16 bitów, wówczas największa liczba dodatnia będzie wyglądać następująco:

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

W systemie dziesiętnym jest to równe:

2 15 -1=32767

Tutaj pierwszy bit pełni rolę znaku liczby. Zero jest znakiem liczby dodatniej. Największą bezwzględną liczbą ujemną jest -32768.

Jak uzyskać jego wewnętrzną reprezentację:

1) przekonwertuj liczbę w 32768 na system liczb binarnych, jest ona równa
100000000000000 - otrzymano kod bezpośredni.

2) odwróć ten kod binarny, tj. zastąp zera jedynkami, a jedynki zerami - otrzymamy kod powrotu.

0111111111111111

3) Dodaj jeden do tej liczby binarnej, wynik jest następujący:

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Jedynka na pierwszym bicie oznacza znak minus.

(nie myśl, że wynikowy kod to „minus zero”. Ten kod reprezentuje liczbę -32768.)

Oto zasady maszynowej reprezentacji liczb całkowitych. Ta wewnętrzna reprezentacja liczby nazywa się dodatkowy kod.

Jeżeli na liczbę całkowitą w pamięci komputera przydzielonych jest N bitów, to zakres wartości liczb całkowitych wynosi: [-2 N-1 -1, 2 N -1]

Przyjrzeliśmy się formatowi reprezentacji liczb całkowitych ze znakiem, tj. pozytywny i negatywny. Są chwile, kiedy musisz pracować tylko z dodatnimi liczbami całkowitymi. W tym przypadku używany jest format reprezentacji liczb całkowitych bez znaku.

W tym formacie najmniejsza liczba to zero, a największa liczba dla komórki 16-bitowej to:

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

W zapisie dziesiętnym jest to 2 16 - 1 = 65535, czyli dwa razy więcej niż w zapisie ze znakiem.

Liczby całkowite w komputerze. (Format zmiennoprzecinkowy)

Największa liczba może się różnić w zależności od kalkulatora. Najprostszy kalkulator ma 999999999. Jeśli dodasz do niego kolejną jednostkę, kalkulator wyświetli komunikat o błędzie. A na „inteligentniejszym” kalkulatorze dodanie jednego doprowadzi do następującego wyniku:

1

mi

+

0

9

Wpis na tablicy wyników rozumie się następująco: 1x10 9.

Ten format liczb nazywa się formacie zmiennoprzecinkowym.

1

mi

+

0

9

mantysa

kolejność numerów

Na komputerze liczby mogą być przedstawiane zarówno w formacie stałoprzecinkowym, jak i zmiennoprzecinkowym.

W technologii komputerowej liczby rzeczywiste (w przeciwieństwie do liczb całkowitych) to liczby, które mają część ułamkową.

Kiedy je pisze Zamiast przecinka zwyczajowo pisze się kropkę. Na przykład liczba 5 jest liczbą całkowitą, a liczby 5,1 i 5,0 są liczbami rzeczywistymi.

Dla wygody wyświetlania liczb przyjmujących wartości z dość szerokiego zakresu (czyli zarówno bardzo małych, jak i bardzo dużych), forma zapisu liczb za pomocą kolejność podstawowa systemu liczbowego. Na przykład liczbę dziesiętną 1,25 można przedstawić w tej postaci w następujący sposób:

1.25*10 0 = 0.125*10 1 = 0.0125*10 2 = ... ,
lub tak:
12.5*10 -1 = 125.0*10 -2 = 1250.0*10 -3 = ... .

Jeżeli „zmiennoprzecinkowy” punkt mantysy znajduje się przed pierwszą znaczącą cyfrą, to przy ustalonej liczbie cyfr przypisanych do mantysy rejestrowana jest maksymalna liczba cyfr znaczących liczby, czyli maksymalna dokładność liczby reprezentacja w maszynie. Dlatego:

Ta reprezentacja liczb rzeczywistych, która jest najbardziej korzystna dla komputera, nazywa się znormalizowany.

Mantysę i rząd liczby q-aryjnej zapisuje się zwykle w systemie o podstawie q, a samą podstawę w systemie dziesiętnym.

Przykłady znormalizowanej reprezentacji:

System dziesiętny System binarny

753,15 = 0,75315*10 3 ; -101,01 = -0,10101*2 11 (kolejność 11 2 = 3 10)

0,000034 = -0,34*10 -4 ; -0,000011 = 0,11*2 -100 (kolejność -100 2 = -410)

Liczby rzeczywiste są zapisywane inaczej w różnych typach komputerów. W takim przypadku komputer zwykle daje programiście możliwość wyboru spośród kilku formatów liczb najbardziej odpowiednich dla konkretnego zadania - wykorzystujących cztery, sześć, osiem lub dziesięć bajtów.

Oto przykładowa charakterystyka formatów liczb rzeczywistych używanych przez komputery osobiste kompatybilne z IBM:

Formaty liczb rzeczywistych Rozmiar w bajtach Przybliżony zakres wartości bezwzględnych Liczba znaczących cyfr dziesiętnych
Pojedynczy 4 10 -45 ... 10 38 7 lub 8
Prawdziwy 6 10 -39 ... 10 38 11 lub 12
Podwójnie 8 10 -324 ... 10 308 15 lub 16
Zaawansowany 10 10 -4932 ... 10 4932 19 lub 20

Z tabeli tej widać, że forma reprezentacji liczb zmiennoprzecinkowych pozwala na zapisywanie liczb z dużą precyzją i z bardzo szerokiego zakresu.

Podczas przechowywania liczb zmiennoprzecinkowych są one przydzielane cyfry mantysy, wykładnika, znaku liczby i znaku wykładnika:

Pokażmy na przykładach, jak niektóre liczby są zapisywane w postaci znormalizowanej w formacie czterobajtowym z siedmioma bitami do zapisania kolejności.

1. Liczba 6,25 10 = 110,01 2 = 0,11001

  • 2 11:

2. Liczba -0,125 10 = -0,0012 = -0,1*2 -10 (kolejność ujemna zapisana jest w uzupełnieniu do dwójki):

Maksymalna wartość nieujemnej liczby całkowitej zostaje osiągnięta, gdy wszystkie komórki zawierają jedynki. Dla reprezentacji n-bitowej będzie ona równa

nieujemne liczby całkowite. Liczba minimalna odpowiada ośmiu zerom przechowywanym w ośmiu bitach komórki pamięci i jest równa zeru. Maksymalna liczba odpowiada ośmiu jednostkom i jest równa

A = 1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 1 × 2 8 - 1 = 255 10 .

Zakres zmian nieujemne liczby całkowite liczby: od 0 do 255.

Do przechowywania liczby całkowite ze znakiem przydzielane są dwie komórki pamięci (16 bitów), a najbardziej znaczący (lewy) bit jest przydzielany znakowi liczby (jeśli liczba jest dodatnia, to do bitu znaku zapisywane jest 0, jeśli liczba jest ujemna - 1) .

Nazywa się reprezentację liczb dodatnich w komputerze przy użyciu formatu znak-wielkość kod bezpośredni liczby. Na przykład liczba 2002 10 = 11111010010 2 będzie reprezentowana w formacie 16-bitowym w następujący sposób:

0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0

Maksymalna liczba dodatnia (pozwalająca na przydzielenie jednej cyfry na znak) dla liczb całkowitych ze znakiem w reprezentacji n-bitowej wynosi:

Używany do reprezentowania liczb ujemnych dodatkowy kod. Dodatkowy kod umożliwia zastąpienie operacji odejmowania arytmetycznego operacją dodawania, co znacznie upraszcza obsługę procesora i zwiększa jego wydajność.

Kod dopełnienia liczby ujemnej A przechowywanej w n komórkach to 2 n - |A|.

Dopełnienie do dwóch oznacza dodanie modułu liczby ujemnej A do 0, ponieważ w n-bitowej arytmetyce komputerowej:

2 n - |A| + |A| = 0,

ponieważ w komputerowej arytmetyce n-bitowej 2 n = 0. Rzeczywiście, binarna reprezentacja takiej liczby składa się z jednej jedynki i n zer, a tylko n cyfr niższego rzędu, to znaczy n zer, może zmieścić się w n-bitowym komórka.

Aby uzyskać kod uzupełniający liczby ujemnej, możesz użyć dość prostego algorytmu:

1. Wpisz moduł liczby kod bezpośredni w n cyfrach binarnych.

2. Zdobądź kod powrotu liczby, dla tej wartości odwróć wszystkie bity (zamień wszystkie jedynki na zera i zamień wszystkie zera na jedynki).

3. Dodaj jeden do powstałego kodu odwrotnego.

Napiszmy dodatkowy kod liczby ujemnej -2002 dla 16-bitowej reprezentacji komputerowej:


Gdy używana jest n-bitowa reprezentacja liczby ujemnej A w kodzie uzupełnienia do dwóch, najbardziej znaczący bit jest przydzielany do przechowywania znaku liczby (jeden). Pozostałe cyfry są zapisywane jako liczby dodatnie.

Aby liczba była dodatnia, musi być spełniony następujący warunek:

|A| 2 funty n-1.

Zatem maksymalna wartość modułu liczby A w m-cyfrowej reprezentacji jest równa:

Zatem minimalna liczba ujemna to:

Zdefiniujmy zakres liczb, które mogą być przechowywane w pamięci RAM w formacie liczby całkowite ze znakiem o długim znaku(do przechowywania takich liczb przydzielono cztery komórki pamięci - 32 bity).

Maksymalna dodatnia liczba całkowita (biorąc pod uwagę przydział jednej cyfry na znak) jest równa:

A = 2 31 - 1 = 2 147 483 647 10.

Minimalna ujemna liczba całkowita to:

A = -2 31 = - 2 147 483 648 10.

Zalety reprezentowania liczb w formacie za pomocą punkt stały to prostota i przejrzystość reprezentacji liczb, a także prostota algorytmów realizacji operacji arytmetycznych.

Wadą przedstawiania liczb w formacie punkt stały to mały zakres reprezentacji wielkości, niewystarczający do rozwiązywania problemów matematycznych, fizycznych, ekonomicznych i innych, w których stosuje się zarówno bardzo małe, jak i bardzo duże liczby.

Reprezentacja liczb w formacie zmiennoprzecinkowym. Liczby rzeczywiste są przechowywane i przetwarzane w komputerze w formacie zmiennoprzecinkowy. W takim przypadku pozycja przecinka dziesiętnego w liczbie może ulec zmianie.

Format liczbowy zmiennoprzecinkowy opiera się na notacji wykładniczej, w której można przedstawić dowolną liczbę. Zatem liczbę A można przedstawić jako:

A = m × q n 2.3

gdzie m jest mantysą liczby;
q - podstawa systemu liczbowego;
n - kolejność liczb.

Do jednolitej prezentacji liczb zmiennoprzecinkowy stosowana jest postać znormalizowana, w której mantysa spełnia warunek:

1/n £ |m|

Oznacza to, że mantysa musi być ułamkiem właściwym i mieć niezerową cyfrę po przecinku.

Przekształćmy liczbę dziesiętną 555,55 zapisaną w postaci naturalnej na postać wykładniczą ze znormalizowaną mantysą:

555,55 = 0,55555 × 10 3.

Tutaj znormalizowana mantysa: m = 0,55555, rząd: n = 3.

Liczba w formacie zmiennoprzecinkowym zajmuje 4 ( wspólna liczba precyzji) lub 8 bajtów ( liczba o podwójnej precyzji). Podczas zapisywania liczby zmiennoprzecinkowej bity są przydzielane do przechowywania znaku mantysy, znaku wykładnika, wykładnika i mantysy.

Zakres liczb jest określony przez liczbę bitów przeznaczonych do przechowywania kolejności liczb, a precyzja (liczba cyfr znaczących) jest określana przez liczbę bitów przeznaczonych do przechowywania mantysy.

Określmy maksymalną liczbę i jej dokładność dla formatu zwykłe liczby precyzyjne, jeśli 8 bitów jest przydzielonych do przechowywania kolejności i jej znaku, a 24 bity są przydzielone do przechowywania mantysy i jej znaku:

0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
podpisz i zamów znak i mantysa

Maksymalna wartość rzędu liczby wyniesie 1111111 2 = 127 10, a zatem maksymalna wartość liczby będzie wynosić:

2 127 = 1,7014118346046923173168730371588 × 10 38.

Maksymalna wartość dodatniej mantysy wynosi:

2 23 - 1 » 2 23 = 2 (10 × 2,3) » 1000 2,3 = 10 (3 × 2,3) » 10 7.

Zatem wartość maksymalna zwykłe liczby precyzyjne biorąc pod uwagę możliwą dokładność obliczeń wyniesie 1,701411 × 10 38 (liczba cyfr znaczących liczby dziesiętnej w tym przypadku jest ograniczona do 7 cyfr).

Zadania

1,26. Wypełnij tabelę, wpisując ujemne liczby dziesiętne w kodach do przodu, do tyłu i kodach uzupełniających w notacji 16-bitowej:

1,27. Zdefiniuj zakres widoku liczby całkowite ze znakiem(przydzielane są 2 bajty pamięci) w formacie stałoprzecinkowym.

1,28. Określ maksymalną liczbę i jej dokładność dla formatu liczby o podwójnej precyzji, jeśli 11 bitów jest przydzielonych do przechowywania kolejności i jej znaku, a 53 bity są przydzielone do przechowywania mantysy i jej znaku.

Dane liczbowe przetwarzane są w komputerze w systemie binarnym. Liczby są przechowywane w pamięci komputera w kodzie binarnym, to znaczy jako ciąg zer i jedynek, i mogą być reprezentowane w formacie stałym lub zmiennoprzecinkowym.

Liczby całkowite są przechowywane w pamięci w formacie stałoprzecinkowym. W tym formacie reprezentacji liczb rejestr pamięci składający się z ośmiu komórek pamięci (8 bitów) jest przydzielany do przechowywania nieujemnych liczb całkowitych. Każda cyfra komórki pamięci odpowiada zawsze tej samej cyfrze liczby, a przecinek znajduje się po prawej stronie za najmniej znaczącą cyfrą i poza siatką cyfr. Na przykład liczba 110011012 będzie przechowywana w rejestrze pamięci w następujący sposób:

Tabela 4

Maksymalną wartość nieujemnej liczby całkowitej, jaką można zapisać w rejestrze stałoprzecinkowym, można wyznaczyć ze wzoru: 2n – 1, gdzie n jest liczbą cyfr tej liczby. Maksymalna liczba będzie równa 28 - 1 = 25510 = 111111112, a minimalna 010 = 000000002. Zatem zakres zmian nieujemnych liczb całkowitych będzie wynosić od 0 do 25510.

W odróżnieniu od systemu dziesiętnego, binarny system liczbowy w komputerowej reprezentacji liczby binarnej nie posiada symboli wskazujących znak liczby: dodatniego (+) lub ujemnego (-), dlatego do przedstawienia liczb całkowitych ze znakiem w systemie binarnym stosuje się dwa stosowane są formaty reprezentacji liczb: format wartości liczbowych ze znakiem i format uzupełnienia do dwójki. W pierwszym przypadku do przechowywania liczb całkowitych ze znakiem przydzielane są dwa rejestry pamięci (16 bitów), a cyfra najbardziej znacząca (skrajna z lewej) jest używana jako znak liczby: jeśli liczba jest dodatnia, do bitu znaku zapisywane jest 0 , jeśli liczba jest ujemna, to 1. Przykładowo liczba 53610 = 00000010000110002 będzie reprezentowana w rejestrach pamięci w następującej postaci:

Tabela 5

oraz liczbę ujemną -53610 = 10000010000110002 w postaci:

Tabela 6

Maksymalna liczba dodatnia lub minimalna liczba ujemna w formacie wartości liczbowej ze znakiem (biorąc pod uwagę reprezentację jednej cyfry na znak) wynosi 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 1111111111111112 i zakres liczb będzie wynosić od - 3276710 do 32767.

Najczęściej do reprezentacji liczb całkowitych ze znakiem w systemie binarnym stosuje się format kodu uzupełnienia do dwóch, który pozwala zastąpić arytmetyczną operację odejmowania w komputerze operacją dodawania, co znacznie upraszcza strukturę mikroprocesora i zwiększa jego wydajność .

Aby przedstawić ujemne liczby całkowite w tym formacie, używany jest kod uzupełnienia do dwóch, który jest modułem liczby ujemnej do zera. Konwersja ujemnej liczby całkowitej na uzupełnienie do dwójki odbywa się za pomocą następujących operacji:


1) wpisać moduł liczby w kodzie bezpośrednim w n (n = 16) cyfr binarnych;

2) uzyskaj odwrotny kod liczby (odwróć wszystkie cyfry liczby, czyli zamień wszystkie jedynki na zera, a zera na jedynki);

3) dodać jedną do najmniej znaczącej cyfry do powstałego kodu odwrotnego.

Na przykład dla liczby -53610 w tym formacie moduł będzie wynosić 00000010000110002, kod odwrotny będzie 1111110111100111, a kod dodatkowy będzie 1111110111101000.

Należy pamiętać, że uzupełnieniem liczby dodatniej jest sama liczba.

Do przechowywania liczb całkowitych ze znakiem innych niż 16-bitowa reprezentacja komputerowa, jeśli są używane dwa rejestry pamięci(ten format liczb jest również nazywany formatem krótkich liczb całkowitych ze znakiem), używane są średnie i długie formaty liczb całkowitych ze znakiem. Do reprezentowania liczb w formacie liczb środkowych używane są cztery rejestry (4 x 8 = 32 bity), a do reprezentowania liczb w formacie liczb długich stosuje się osiem rejestrów (8 x 8 = 64 bity). Zakresy wartości dla średniego i długiego formatu liczb będą wynosić odpowiednio: -(231 – 1)…+231 – 1 i -(263-1)…+263 – 1.

Komputerowa reprezentacja liczb w formacie stałoprzecinkowym ma swoje zalety i wady. DO korzyści do wad należy prostota przedstawiania liczb i algorytmy realizacji operacji arytmetycznych; wadami są skończony zakres reprezentacji liczb, który może być niewystarczający do rozwiązania wielu problemów o charakterze praktycznym (matematycznym, ekonomicznym, fizycznym itp.).

Liczby rzeczywiste (skończone i nieskończone miejsca po przecinku) są przetwarzane i przechowywane w komputerze w formacie zmiennoprzecinkowym. W przypadku tego formatu reprezentacji liczb położenie przecinka dziesiętnego we wpisie może ulec zmianie. Dowolną liczbę rzeczywistą K w formacie zmiennoprzecinkowym można przedstawić jako:

gdzie A jest mantysą liczby; h – podstawa systemu liczbowego; p – kolejność liczb.

Wyrażenie (2.7) dla systemu liczb dziesiętnych będzie miało postać:

dla binarnego -

dla ósemkowego -

dla szesnastkowego -

Ta forma reprezentacji liczb jest również nazywana normalna . Wraz ze zmianą kolejności przecinek w liczbie przesuwa się, to znaczy wydaje się, że unosi się w lewo lub w prawo. Dlatego nazywa się normalną formę przedstawiania liczb postać zmiennoprzecinkowa. Na przykład liczbę dziesiętną 15,5 w formacie zmiennoprzecinkowym można przedstawić jako: 0,155 102; 1,55 101; 15,5 100; 155,0 10-1; 1550.0 · 10-2 itd. Ta postać dziesiętnej notacji zmiennoprzecinkowej 15,5 nie jest używana przy pisaniu programów komputerowych i wprowadzaniu ich do komputera (komputerowe urządzenia wejściowe akceptują jedynie liniowy zapis danych). Na tej podstawie wyrażenie (2.7) służące do przedstawiania liczb dziesiętnych i wprowadzania ich do komputera jest konwertowane do postaci

gdzie P jest porządkiem liczby,

tj. zamiast podstawy systemu liczbowego 10 wpisuje się literę E, zamiast przecinka kropkę i nie stawia się znaku mnożenia. Zatem liczba 15,5 w formacie zmiennoprzecinkowym i liniowym (reprezentacja komputerowa) zostanie zapisana jako: 0,155E2; 1,55E1; 15,5E0; 155,0E-1; 1550.0E-2 itp.

Niezależnie od systemu liczbowego dowolną liczbę zmiennoprzecinkową można przedstawić za pomocą nieskończonej liczby liczb. Ta forma nagrywania nazywa się nieznormalizowany . W celu jednoznacznej reprezentacji liczb zmiennoprzecinkowych stosuje się znormalizowaną formę zapisu liczby, w której mantysa liczby musi spełniać warunek

gdzie |A| - wartość bezwzględna mantysy liczby.

Warunek (2.9) oznacza, że ​​mantysa musi być ułamkiem właściwym i mieć po przecinku niezerową cyfrę, czyli innymi słowy, jeżeli mantysa nie ma zera po przecinku, to liczbę nazywamy znormalizowaną . Zatem liczba 15,5 w postaci znormalizowanej (mantysa znormalizowana) w postaci zmiennoprzecinkowej będzie wyglądać następująco: 0,155 · 102, czyli znormalizowana mantysa będzie wynosić A = 0,155 i rzędu P = 2, lub w komputerowej reprezentacji liczby 0,155E2.

Liczby zmiennoprzecinkowe mają stały format i zajmują cztery (32 bity) lub osiem bajtów (64 bity) pamięci komputera. Jeśli liczba zajmuje 32 bity w pamięci komputera, to jest to liczba o regularnej precyzji; jeśli ma 64 bity, to jest to liczba o podwójnej precyzji. Podczas zapisywania liczby zmiennoprzecinkowej przydzielane są bity do przechowywania znaku mantysy, znaku wykładnika, mantysy i wykładnika. Liczba cyfr przypisanych do rzędu liczby określa zakres zmienności liczb, a liczba cyfr przypisanych do przechowywania mantysy określa dokładność, z jaką liczba jest podana.

Podczas wykonywania operacji arytmetycznych (dodawania i odejmowania) na liczbach przedstawionych w formacie zmiennoprzecinkowym realizowana jest następująca procedura (algorytm):

1) jest wyrównany porządek liczb, na których wykonywane są działania arytmetyczne (rząd mniejszej liczby bezwzględnej zwiększa się do rzędu większej liczby bezwzględnej, podczas gdy mantysa maleje o tę samą kwotę);

2) działania arytmetyczne przeprowadza się na mantysach liczb;

3) uzyskany wynik jest normalizowany.

Część praktyczna