Architektura systemów komputerowych (jesień 2013)

Slides:



Advertisements
Podobne prezentacje
Systemy liczbowe w architekturze komputerów materiał do wykładu 1/3
Advertisements

Ernest Jamro Kat. Elektroniki AGH, Kraków Dep. Of Electronics, AGH
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Przygotował: Adrian Walkowiak
Ciekawostki o liczbach
Czyli jak zrobić prezentację komputerową?
Zadania i łamigówki matematyczne.
Moja Prezentacja Aleksandra Skorupa.
Tajemnice klawiatury.
Ułamki dziesiętne.
funkcja przyjmuje wartości dodatnie, a dla jakich ujemne?
PROCENTY.
Prezentację przygotowała Bożena Piekar
FUNKCJA L I N I O W A Autorzy: Jolanta Kaczka Magdalena Wierdak
ZACZYNAM. Wartość wyrażenia 3+2*23-15= a)40 b)100 c)34.
III. Proste zagadnienia kwantowe
Elektronika cyfrowa Prezentacja Remka Kondrackiego.
Prąd Elektryczny.
Podstawowe jednostki informacji, co to jest bit i bajt?
To jest bardzo proste  Lekcja nr 3
Każde twierdzenie można zapisać w postaci: "Jeśli a to b". a – nazywamy założeniem twierdzenia, b – nazywamy tezą twierdzenia. Jeśli zamienimy b z a miejscami,
Podstawy programowania
Takie liczby to: {... -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,... }
Microsoft® Office EXCEL 2003
Kodowanie NKB, BCD, ASCII
W jaki sposób uczniowie ZSE mogą działać na rzecz ekorozwoju lokalnego?
ALGORYTM.
Wydział Badań i Analiz ZHP – Spis 2006 Stan liczebny ZHP na podstawie spisu 2006.
Wykonała Sylwia Kozber
Weź kartkę papieru i ołówek!!!!!!!!
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
Antonie de Saint-Exupery
xHTML jako rozszerzenie HTML
PHP Operacje na datach Damian Urbańczyk. Operacje na datach? Dzięki odpowiednim funkcjom PHP, możemy dokonywać operacji na datach. Funkcje date() i time()
HTML Podstawy języka hipertekstowego Damian Urbańczyk.
1 Danuta Stanek 1 Reprezentacja informacji tekstowej.
Ruch jednostajny po okręgu Ciało porusza się ruchem jednostajnym oraz torem tego ruchu jest okrąg.
Optyka Widmo Światła Białego Dyfrakcja i Interferencja
SKALA.
RÓWNANIA Wprowadzenie.
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
Opracowała: Iwona Kowalik
SKALA MAPY Skala – stosunek odległości na mapie do odpowiadającej jej odległości w terenie. Skala najczęściej wyrażona jest w postaci ułamka 1:S, np. 1:10.
Liczba “fi” Prezentację przygotowali:
1 Strategia dziel i zwyciężaj Wiele ważnych algorytmów ma strukturą rekurencyjną. W celu rozwiązania rozwiązania problemu algorytm wywołuje sam siebie.
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
Podzielność liczb. Cecha podzielności przez 3 i 9.
- powtórzenie wiadomości
RÓŻNE SPOSOBY ROZWIĄZANIA TEGO SAMEGO ZADANIA NA RÓŻNYCH ETAPACH EDUKACYJNYCH.
Zmiany w Przepisach Gry w Piłkę Nożną od 1 września 2006r. Kolegium Sędziów Warmińsko-Mazurskiego Związku Piłki Nożnej.
Uwierzytelnianie (Authentication) Sergiusz Przybylski III r. Informatyka Stosowana.
Program Edukacyjno- Terapeutyczny Ortograffiti
Zadanie: przy pomocy algorytmu simplex rozwiązać następujące zadanie programowania liniowego: przy ograniczeniach: Autor: Michał KĘPIEŃ (I4X2S0)
SYSTEMY LICZENIA.
W.K. (c) Bazy danych Access. 2W.K. (c) 2007 Baza danych - definicje Baza danych to zbiór informacji dotyczących określonego tematu (stanowiących.
Skala i plan mgr Janusz Trzepizur.
Procesor, układy pamięci i inne układy komputera rozróżniają jedynie dwie, oznaczone symbolami 0 i 1. Taki sposób interpretowania jest stosowany również.
Temat 5: Elementy meta.
Temat 1: Składnia języka HTML
Temat 1: Umieszczanie skryptów w dokumencie
Temat 6: Elementy podstawowe
Temat 4: Znaki diakrytyczne i definiowanie języka dokumentu
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
w/g Grzegorz Gadomskiego
Największym bólem w życiu nie jest śmierć, lecz bycie ignorowanym.
1 Technika cyfrowa Systemy zapisu liczb wykonał Andrzej Poczopko.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Działania w systemie binarnym
Zapis prezentacji:

Architektura systemów komputerowych (jesień 2013) Wykład 2 Reprezentacja danych część 2 dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz

Nadmiar i niedomiar U2 0111 7(10) + 0001 +1(10) ------- ----- W trakcie wykonywania działań arytmetycznych wynik operacji może przekroczyć dozwolony zakres liczb zarówno powyżej górnej granicy (nadmiar) jak i poniżej dolnej (niedomiar). Sytuacja objawia się nieoczekiwaną zmianą znaku. 0111 7(10) + 0001 +1(10) ------- ----- 1000 -8(10) liczba 8 będąca sumą 7 i 1 wykracza poza górny zakres wartości 4 bitowego kodu U2 1010 -6(10) + 1101 +-3(10) ------- --- 10111 7(10)

Nadmiar i niedomiar w U2 Wystąpienie nadmiaru lub niedomiaru wskazuje że programista źle dobrał typ danych dla przetwarzanej informacji. Najprostszym rozwiązaniem jest zwiększenie długości formatu U2 (np. z 16 bitów na 32 bity). Reguły powstawania nadmiaru i niedomiaru przy różnych operacjach arytmetycznych na liczbach w kodzie U2. Tabela zawiera stany bitów znakowych. Operacja Pierwszy argument Drugi argument Wynik Dodawanie 1 Odejmowanie Mnożenie i dzielenie

Mnożenie dwójkowe Pomnożyć binarnie liczbę 1101(2) przez 1011(2) Do wykonywania mnożenia niezbędna jest znajomość tabliczki mnożenia dwójkowego, czyli wyników mnożenia każdej cyfry z każdą inną: 0  0 = 0 0  1 = 0 1  0 = 0 1  1 = 1 Pomnożyć binarnie liczbę 1101(2) przez 1011(2) Zwróć uwagę, iż wynikiem mnożenia mnożnej przez cyfrę mnożnika jest powtórzenie mnożnej z przesunięciem o pozycję cyfry (cyfra mnożnika 1) lub same zera (cyfra mnożnika 0). Spostrzeżenie to bardzo ułatwia konstrukcję układów mnożących. 1101 = 13 (10)  1011 = 11 1101 0000

Mnożenie dwójkowe Puste kolumny uzupełniamy zerami i dodajemy do siebie wszystkie cyfry w kolumnach. Uważaj na przeniesienia 1101 = 13 (10)  1011 = 11 + 00001101 00011010 00000000 01101000 10001111= 143

Mnożenie dwójkowe – dalsze przykłady   1 × +   1 × +   1 × + Uwaga: Z uwagi na ustalone formaty danych binarnych w komputerach (8, 16 i 32 bity) mnożenie również może dawać niepoprawne rezultaty, gdy wynik będzie większy od górnego zakresu liczb dla danego formatu, czyli od max = 2n - 1, gdzie n - liczba bitów w danym formacie

Dzielenie dwójkowe Algorytm szkolny polega na cyklicznym odejmowaniu odpowiednio przesuniętego dzielnika od dzielnej. W systemie dwójkowym jest to szczególnie proste, ponieważ dzielnika nie musimy mnożyć Przykład: Podzielmy liczbę 1101(2) przez 10(2) (13(10) : 2(10)). 1. Przesuwamy w lewo dzielnik, aż zrówna się jego najstarszy, niezerowy bit z najstarszym, niezerowym bitem dzielnej. Nad dzielną rysujemy kreseczkę: 1101  - dzielna 10  - przesunięty dzielnik 2. Porównujemy dzielną z dzielnikiem. Jeśli dzielna jest większa lub równa dzielnikowi, to odejmujemy od niej dzielnik. Ponad kreską na pozycji ostatniej cyfry dzielnika piszemy 1.   1  - pierwsza cyfra wyniku dzielenia  - dzielna -  - przesunięty dzielnik  - wynik odejmowania

Dzielenie dwójkowe 3. Dzielnik przesuwamy o jeden bit w prawo i próbujemy tego samego z otrzymaną różnicą.   1  - wynik dzielenia = 6(10)  - dzielna -  - przesunięty dzielnik  - dzielna po pierwszym odejmowaniu przesuniętego dzielnika  - dzielna po drugim odejmowaniu przesuniętego dzielnika  - dzielnik na swoim miejscu, odejmowanie niemożliwe  - reszta z dzielenia a) Jeśli odejmowanie jest możliwe, to nad kreską w następnej kolumnie dopisujemy 1, odejmujemy dzielnik od różnicy, przesuwamy go o 1 bit w prawo i kontynuujemy. b) Jeśli odejmowanie nie jest możliwe, to dopisujemy nad kreską 0, przesuwamy dzielnik o 1 bit w prawo i kontynuujemy.

Dzielenie dwójkowe - wprawka Podzielić liczbę 110101101(2) przez 111(2) (429(10) przez 7(10)): 1 1 1 1 1 110101101 : 111 111       - nie da się odjąć, nad kreską 0 110101101 111      - da się odjąć, nad kreską 1 11001101 111     - da się odjąć, nad kreską 1 1011101 111    - da się odjąć, nad kreską 1 100101 111   - da się odjąć, nad kreską 1 1001 111  - nie da się odjąć, nad kreską 0 1001 111 - da się odjąć, nad kreską 1, koniec 10 - reszta z dzielenia

Mnożenie liczb w kodzie U2 Przed wykonaniem tej operacji arytmetycznej musimy rozszerzyć znakowo obie mnożone liczby tak, aby ich długość (liczba bitów) wzrosła dwukrotnie. Rozszerzenie znakowe polega na powielaniu bitu znaku na wszystkie dodane bity. Jeżeli liczby są różnej długości, to rozszerzamy znakowo względem dłuższej liczby. 0111(U2) = 00000111(U2) - rozszerzyliśmy znakowo liczbę 4 bitową do 8 bitowej 1011(U2) = 11111011(U2) - to samo dla liczby ujemnej Rozszerzenie znakowe nie zmienia wartości liczby w kodzie U2. Po wykonaniu rozszerzenia znakowego liczby mnożymy standardowo.

Mnożenie w kodzie U2 ?? 11111010(U2) = -6(10) Przykład: 11111110  x   00000011 011111110 +  111111100 1011111010 Przykład: Pomnóżmy (-2) × 3:   -2 = 1110(U2) = 11111110(U2) 3 = 0011(U2) = 00000011(U2) ?? Wynik mnożenia może być liczbą o długości równej sumie długości mnożonych liczb. Dlatego bity wykraczające w naszym przykładzie poza 8 bitów ignorujemy.  11111010(U2) = -6(10)

Dzielenie liczb w kodzie U2 Najprostszym rozwiązaniem jest zapamiętanie znaków dzielonych liczb, zamiana ich na liczby dodatnie, dokonanie dzielenia dla liczb naturalnych, a następnie zmiana znaku wyniku, jeśli znaki dzielnej i dzielnika różnią się. 6 = 0110(U2) -3 = 1101(U2) - zmieniamy na 3 = 0011(U2) Dzielimy liczbę 0110 przez 0011 10 0110:0011 -0110 0000 Otrzymaliśmy wynik 0010  (liczba 2). Znaki dzielnej i dzielnika są różne Zmieniamy wartość na przeciwną: 1110(U2) = (-2).

Reguły znaków przy dzieleniu liczb całkowitych Dzielenie w kodzie U2 Jeśli w trakcie dzielenia otrzymamy resztę, to musi ona mieć ten sam znak, co dzielna.  Reguły znaków przy dzieleniu  liczb całkowitych Dzielna Dzielnik Wynik Reszta 1

Mnożenie w rejestrach procesora Metoda przesuń i dodaj X (mnożna) Y (mnożnik) stosuje się układ rejestrów podłączonych do sumatora binarnego Rejestr Q zawiera X, rejestr M zawiera Y. Rejestr A jest połączony z Q i rejestrem S. Rejestry M, A, Q są n-bitowe. Rejestr S jest 1-bitowy. Rejestr SAQ przechowuje wynik końcowy i częściowe wyniki w trakcie mnożenia. Dodaj Y do siebie tyle razy, ile wynosi X. Zawartość M jest dodawana do A dla kolejnych jedynek w X w rejestrze Q, począwszy od bitu najmniej znaczącego, z przesuwaniem całego rejestru SAQ o jedną pozycję w prawo po każdym dodaniu M oraz po każdym wykryciu zerowego bitu mnożnika na zerowej pozycji rejestru Q. Otrzymany wynik ma podwójną liczbę bitów w porównaniu z argumentami mnożenia.

Mnożenie – przesuń i dodaj A=0; S=0; // Inicjalizacja A i S. M=Y; // Wprowadzenie mnożnej do M. Q=X; // Wprowadzenie mnożnika do Q. if (Q(n -1)= "1" // Jeśli mnożnik jest ujemny, zastąp M i Q { M= - M; // przez ich uzupełnienia do 2, Q = -Q; // wtedy Q zawsze będzie dodatni. } S = M(n-1); // Wprowadzenie znaku M do S.

Mnożenie – przesuń i dodaj for i in 1 to n { if(Q(0) = "1" A = M + A; // Dodanie M do A Q razy. } for j in 1 to 2n SAQ(j-1) = SAQ (j); //Przesunięcie SAQ o 1 pozycje w prawo, } //bez zmiany znaku S.

Mnożenie – przesuń i dodaj Pomnóż X = 01010 przez Y = 11001 czyli 10(10)  -7(10). S A Q Operacja do wykonania 0 00000 01010 przesuń w prawo 0 00000 00101 dodaj M do A 1 11001 00101 przesuń w prawo 1 11100 10010 przesuń w prawo 1 11110 01001 dodaj M do A 1 10111 01001 przesuń w prawo 1 11011 10100 przesuń w prawo 1 11101 11010 Wynik 1110111010 czyli -70(10).

Mnożenie metodą Booth'a/Wallace'a Metoda Booth'a/Wallace'a jest szybka – wykorzystuje równoległe przetwarzanie danych Wykorzystuje się wiele równolegle pracujących układów mnożących mnożną przez trójki bitów mnożnika metodą Booth'a. Wiele równolegle pracujących układów sumatorów ustawionych w strukturę drzewa Wallace'a

Metoda Bootha

CSA i CLA W strukturze drzewa Wallace'a wykorzystane są specjalne sumatory trójargumentowe z pamiętaniem przeniesień (CSA - Carry Save Adder), które pozostawiają wynik dodawania w postaci dwu słów: słowa bitów sumy i słowa bitów przeniesień. Takie sumatory działają bardzo szybko, gdyż całkowicie wyeliminowane jest w nich propagowanie przeniesień a bity słowa przeniesień są generowane bardzo szybko na podstawie jedynie trójek bitów na argumentów na kolejnych pozycjach.

CSA i CLA Na końcu serii dodawań, gdzie chcemy wynik sprowadzić do postaci jednego słowa, stosowany jest sumator z przeniesieniami jednoczesnymi (CLA - Carry Look-Ahead Adder).

Metoda macierzowa Formułę mnożenia argumentów binarnych wyrażonych jako sumy iloczynów wartości bitów i wag na poszczególnych pozycjach w zapisie uzupełnień do 2, można sprowadzić, poprzez odpowiednie grupowanie wyrazów i wprowadzenie negacji bitów, do postaci, która stanowi podstawę dla zbudowania macierzowego (matrycowego) układu mnożącego zbudowanego z sumatorów elementarnych (1-bitowych). W matrycy elementarnych sumatorów występuje tyle wierszy sumatorów ile bitów maja mnożone liczby. Na wejścia początkowej warstwy sumatorów elementarnych oraz na wejścia przeniesień w niższych warstwach, wprowadzane są odpowiednie iloczyny logiczne bitów mnożnika i mnożnej (proste lub zanegowane). Wyniki elementarnych sumowań (bity sumy i przeniesień) są podawane na wejścia sumatorów w niższych warstwach lub stanowią bity wyniku iloczynu, w zależności od pozycji danego sumatora w matrycy.

Mnożenie metodą macierzową

Formaty liczb niecałkowitych format słowa - budowę słowa z pól bitowych i ich przeznaczenie Obliczenia pojedynczej precyzji: liczba jest zapisana w jednym słowie komputera wielokrotna precyzja obliczeń: do zapisu liczby wykorzystuje się dwa lub więcej słów formaty zapisu liczb stałoprzecinkowy zmiennoprzecinkowy

Format stałoprzecinkowy Unikalną reprezentacją liczby o wartości L jest zbiór cyfr {an-1,… ,a1,a0,a-1, … , a-m} takich, że

Przykład obliczania wartości Obliczyć wartość dziesiętną liczby stałoprzecinkowej 213,132(4) 213,132(4) = 2×42 + 1×41 + 3×40 + 1×4-1 + 3×4-2 + 2×4-3 = 2×16 + 1×4 + 3×1 + 1×1/4 + 3×1/16 + 2×1/64 = 39 30/64 Obliczyć wartość dziesiętną liczby stałoprzecinkowej 537,462(8) 537,462(4) = 5×82 + 3×81 + 7×80 + 4×8-1 + 6×8-2 + 2×8-3 = 5×64 + 3×8 + 7 + 4×1/8 + 6×1/64 + 2×1/512 = 1311,59765625

Przykłady obliczania wartości Znaleźć rozwinięcie dziesiętnej liczby 128/9 na system trójkowy z dokładnością do dwóch miejsc po przecinku. w ← 12 8/9 x 32 = 12 8/9 x 9 = 116 (mnożymy przez podstawę podniesioną do odpowiedniej potęgi) w ← 116 div 3 = 38 i reszta 2 w ← 38 div 3 = 12 i reszta 2 w ← 12 div 3 = 4 i reszta 0 Otrzymaliśmy kolejne cyfry 11022. Dwie ostatnie cyfry umieszczamy po przecinku. w ← 4 div 3 = 1 i reszta 1 w ← 1 div 3 = 0 i reszta 1 (koniec) 12 8/9 = 110,22(3)

Przykład obliczania wartości Znaleźć zapis dziesiętnej liczby 1/10 w systemie dwójkowym z dokładnością do 8 miejsc po przecinku. w ← 1/10 x 28 = 1/10 x 256 = 256/10 = 26 (zaokrąglamy do najbliższej wartości całkowitej) 26 div 2 = 13 i reszta 0 13 div 2 = 6 i reszta 1 6 div 2 = 3 i reszta 0 3 div 2 = 1 i reszta 1 0.00011010

Skala obliczeń Skalowanie polega na pomnożeniu wszystkich liczb uczestniczących w obliczeniu przez stały współczynnik równy p-k, gdzie p jest podstawą systemu liczbowego a k nazywa się skalą obliczeń. skalowanie powoduje zmianę miejsca przecinka w zapisach liczbowych argumentów przed wykonaniem stałoprzecinkowych operacji arytmetycznych. Pomnożenie liczby binarnej przez 2-k , k ¹ 0 powoduje a) przesunięcie przecinka binarnego o k pozycji w lewo, jeśli k jest całkowite i dodatnie (jeśli wykroczymy poza początkową liczbę cyfr w zapisie binarnym liczby, to dla liczby dodatniej wstawiamy cyfry równe 0, a dla liczby ujemnej wstawiamy cyfry równe 1). b) przesunięcie przecinka binarnego o k pozycji w prawo, jeśli k jest całkowite i ujemne (jeśli wykroczymy poza początkową liczbę cyfr w zapisie liczby, to wstawiamy cyfry równe 0). Skalę obliczeń należy ustawić tak, by wyniki obliczeń mieściły się na liczbie miejsc przed przecinkiem wyznaczonej przez przyjętą skalę dla argumentów Liczba 5.25 w skali 0 ma zapis 00101,010 Ta liczba w skali 3 ma zapis 0,1010100 W skali 5 0,0010101 W skali -4 01010100 Liczba -5.25 ma skali 0 zapis 110101,110 Ta liczba w skali 3 ma zapis 110,101110 W skali 5 1,10101110 W skali -4 110101110

Liczby stałoprzecinkowe U2 Zasada obliczania wartości liczby stałoprzecinkowej U2 w niczym nie różni się od zasad dla liczb całkowitych Przykład: 0110,1011(U2) = 22 + 21 + 2-1 + 2-3 + 2-4 0110,1011(U2) = 4 + 2 + 1/2 + 1/8 + 1/16 0110,1011(U2) = 6 11/16 1101,0011(U2) = (-23) + 22 + 20 + 2-3 + 2-4 1101,0011(U2) = (-8) + 4 + 1 + 1/8 + 1/16 1101,0011(U2) = (-8) + 5 3/16 1101,0011(U2) = -(2 13/16)

Obliczanie liczby przeciwnej Negujemy wszystkie bity Dodajemy 1 na najmłodszej pozycji Obliczmy liczbę przeciwną do 1101,1001(U2) = (-2 7/16) NOT 1101,1001 = 2 7/16 0010,0110 + 0000,0001 0010,0111

Konwersja dziesiętnej na U2 Znaleźć zapis U2 liczby 3,125. Zapis U2 posiada 4 bity całkowite i 4 bity ułamkowe 3(10) = 11(2) - część całkowita 0,125(10) = 1/8 = 0,001(2) - część ułamkowa 3,125(10) = 11,001(2) = 0011,0010(U2) Znaleźć zapis U2 liczby -2,125. Zapis U2 posiada 3 bity całkowite oraz 5 bitów ułamkowych. Ponieważ bitów całkowitych jest n=3, to liczbę -2,125 sumujemy z liczbą 23 = 8 8 + (-2,125) = 5,875 = 5 7/8 5,875(10) = 101,111(2) = 101,11100  -2,125(10) = 101,11100(U2)

Mnożenie liczb stałoprzecinkowych U2 metodą Bootha Q Q-1 Operacja 00000 10010 A=0, Q-1=0 Q=Y M=X 00000 01001 Q0Q-1==00 więc ASR(AQQ-1) 00101 01001 Q0Q-1==10 więc A=A-M 00010 10100 1 ASR(AQQ-1) 11101 10100 1 Q0Q-1==01 więc A=A+M 11110 11010 ASR(AQQ-1) 11111 01101 Q0Q-1==00 więc ASR(AQQ-1) 00100 01101 Q0Q-1==10 więc A=A-M 00010 00110 1 ASR(AQQ-1)

Metoda porównawcza dzielenia ZM Jeżeli przesunięta reszta częściowa jest większa lub równa od dzielnika, to kolejny bit ilorazu qi = 1, odejmujemy dzielnik od tej reszty. Jeżeli przesunięta reszta częściowa jest mniejsza od dzielnika, to kolejny bit ilorazu qi = 0. Dokonujemy przesunięcia otrzymanego wyniku o jedno miejsce w lewo i przechodzimy do punktu pierwszego Część całkowita w zapisie binarnym została pominięta – zapis jest postaci bity_ułamka Dzielenie odbywa się w kodzie znak-moduł z pominięciem bitu znaku (operujemy na modułach liczb), w przeciwieństwie do pozostałych metod

Metoda porównawcza RC = A = 0011001 (RC ≥ B, więc q1 = 1) 011001 <- 011001 <- −0101 ------ 000101 RC = 00101 <- (RC < B, więc q2 = 0) RC = 0101 <- (RC ≥ B, więc q3 = 1) −0101 ---- RC = 0000 (kolejna reszta częściowa = 0) Otrzymany wynik, złożony z kolejnych bitów od q1 do q3 jest modułem liczby wynikowej, postaci q1q2q3. Bit znaku (z) tej liczby określamy na podstawie bitów znaku dzielnej (a) i dzielnika (b) przy pomocy operacji logicznej: z = a XOR b. Tak więc przy różnych bitach znaku daje ona wynik 1, przy takich samych daje 0. Wynik otrzymujemy w kodzie znak-moduł i jest on równy 1.101ZM

Wady liczb stałoprzecinkowych nie możemy prosto zapisywać na niewielkiej liczbie bajtów bardzo dużych i bardzo małych liczb jeśli chcemy rozszerzyć zakres i liczbę miejsc po przecinku musimy używać bardzo dużej liczby bajtów trudny do oszacowania błąd obliczeń