Kapitola 3: Operácie s binárnymi číslami v mikroprocesore

Kapitola 3 Operacie S Binarnymi Cislami V Mikroprocesore



Kapitola 3: Operácie s binárnymi číslami v mikroprocesore

3.1 Úvod

V počítači sa aritmetické operácie vykonávajú v 8 bitoch, 16 bitoch, 32 bitoch alebo 64 bitoch. Číslo ako 3 v binárnom kóde je 11. Ak sa má operácia vykonať v 8 bitoch, považuje sa to za 00000011; pred ním s 0 nulami.







Pre binárne číslo ako 10000101 je najvýznamnejším bitom bit úplne vľavo. V tomto prípade je to 1. Najmenej významný bit je krajný bit vpravo, ktorý je stále 1 pre číslo. Najvýznamnejší bit sa označuje skratkou MSB. Najmenej významný bit sa označuje skratkou LSB.



BInary digiT je skrátený ako BIT a jednoducho sa píše ako bit. V čísle 10010011 je každá jednotka alebo nula bit. Skupina štyroch bitov sa nazýva nibble. Skupina ôsmich bitov sa nazýva bajt. Bajt pozostáva z dvoch kúskov. Nibble je ohryzok pre LSB a vyšší ohryzok je pre MSB.



Skupina 8 bitov, 16 bitov, 32 bitov alebo 64 bitov sa nazýva slovo, pokiaľ táto skupina prenáša informácie nad rámec označenia čísla. Skupina sa nazýva slovo, napríklad ak ide o inštrukciu nízkej úrovne v počítači. Existuje aj slovo 24 bitov, ale to sa dnes bežne nepoužíva.





Endianness sa vzťahuje na poradie, v ktorom bajty tvoria slovo. Zoberme si 24-bitové slovo – 100100001111010100100010. Toto slovo pozostáva z troch bajtov, ktoré sú:

10010000 11110101 00100010



Najdôležitejší bajt je bajt najviac vľavo. Keď je bajt úplne vľavo najdôležitejší bajt a bajt úplne vpravo je najmenej významný bajt, označuje sa to ako reprezentácia slova Big Endian. Reprezentácia Little Endian je opakom.

Pamäť počítača je séria buniek a každá bunka obsahuje bajt. Prvá bunka v pamäti počítača je pre bajt 0, druhá pre bajt 1, tretia pre bajt 2 atď. Pri veľkej endianness a pre predchádzajúce slovo je najvýznamnejší bajt uložený v bunke bajtu 0, stredný bajt je uložený v bunke 1 a najmenej významný bajt je uložený v bunke 2. To znamená, že v dolnej pamäťovej bunke je viac významných bajtov.

Predchádzajúce 24-bitové slovo možno zapísať v opačnom poradí bajtov takto:

00100010 11110101 10010000

Teraz je najmenej významný bajt úplne vľavo a najvýznamnejší bajt je úplne vpravo. Keď je bajt úplne vľavo najmenej významný bajt a bajt úplne vpravo je najvýznamnejší bajt, ide o reprezentáciu slova Little Endian. S malou endianness a pre predchádzajúce slovo je najmenej významný bajt uložený v bunke bajtu 0, stredný bajt je uložený v bunke 1 a najvýznamnejší bajt je uložený v bunke 2. To znamená, že v dolnej pamäťovej bunke je menej významný bajt.

Endianness sa nepoužíva pre bity v byte. Nepoužíva sa ani na okusovanie v byte. Používa sa iba na poradie bajtov.

Číselný rad
Číslo bez znamienka je kladné číslo. Kladné čísla sú čísla od nuly smerom nahor. Existujú aj záporné čísla. Na číselnej osi môžu byť uvedené kladné a záporné čísla. Nasledujúci číselný rad zobrazuje kladné a záporné celé čísla (celé čísla) blízke nule:

Záporné čísla klesajú od nuly nadol (doľava). V mnohých situáciách sa nula považuje za pozitívnu. V niektorých situáciách sa však považuje za negatívnu. Preto je v diagrame pred nulou v spodnom číslovaní znamienko plus a mínus. Keď je číslo kladné, jeho znamienko možno vynechať; toto je prípad horného číslovania v diagrame. Znamienko mínus pred záporným číslom sa nikdy nevynecháva.

3.2 Sčítanie binárnych čísel

Okrem toho:

A + B = S

A sa nazýva augend, B sa nazýva súčet a S sa nazýva súčet.

Zvážte nasledujúce pridanie dvoch kladných čísel do základu dva:

V základe dva sú jediné možné číslice 0 a 1. Sčítanie v základe 2 je podobné ako sčítanie v základe desať, ale dvojka v základe dva je jedna nula (10). Keď je súčet dvoch bitov v stĺpci 10, zapíše sa 0 a 1 sa prenesie do bezprostredného ľavého stĺpca; ktoré sa majú pripočítať k súčtu dvoch bitov. Keď je celkový súčet tri, znamená to 11 v základe dva. Pravá 1 v 11 sa zapíše a ľavá 1 sa prenesie, aby sa pridala k súčtu bitov bezprostredného ľavého stĺpca. V oboch prípadoch sa 1 nesený doľava nazýva prenos.

Pri čítaní predchádzajúcej tabuľky sčítania sprava v druhom stĺpci (sprava) je prenos, ktorý je výsledkom 1+1 = 10. V treťom stĺpci je prenos, ktorý je výsledkom 1+1+ prenosu 1 = 11. Vo štvrtom stĺpci je prenos, ktorý je výsledkom 0+1+ prenos 1 = 10. V piatom stĺpci nie je prenos, pretože súčet je 0+0+ prenos 1 = 1. zvyšok stĺpcov nezahŕňa žiadne prenášanie.

Počítanie stĺpcov začína od pravého konca. Pri 16-bitovom pridaní môže dôjsť k prenosu z ôsmeho stĺpca do deviateho stĺpca (pohybuje sa doľava). Ilustruje to nasledujúca tabuľka:

Aritmetické a logické operácie prebiehajú v mikroprocesore na základnej doske počítača.

Pri 8-bitovom slovnom počítači nemôže prenos prejsť z ôsmeho bitu na deviaty automaticky hardvérom. Takže na pridanie dvoch 16-bitových skupín v takomto počítači sa pridanie musí vykonať dvakrát v osem-osembitových pároch. Prenášanie sa pohybuje a vykonáva softvérom (programovaním).

Ak chcete pridať dve čísla, čísla je možné pred pridaním najskôr previesť na formu doplnku ich dvoch (pozri nižšie).

3.3 Doplnenie dvojky a jej odčítanie binárnych čísel

Na základnej doske počítača je pamäť a tam je mikroprocesor a ďalšie obvody. Pamäť je séria osembitových buniek. Pre bajt ide každý bit do bunky. Mikroprocesor má niekoľko pamäťových miest. Tieto miesta typu pamäte sa nazývajú registre. Takže v počítači môžu byť skupiny bajtov dočasne uložené v pamäti alebo v registroch mikroprocesora.

V ktoromkoľvek z týchto úložísk môže mať každá bunka buď 1 alebo 0 a nič iné. V živote existujú pozitívne a negatívne čísla. Kladné číslo začína znamienkom plus (+) a záporné číslo začína záporným znamienkom (-). Keď sa znamienko vynechá, číslo sa považuje za kladné číslo.

Na vyriešenie tohto problému označenia znamienka čísla v počítači sú celé čísla uložené v rozsahoch. Celé čísla sú celé čísla. Ak sa na uloženie rozsahu možných čísel použije osem bitov, ako bit znamienka sa použije bit úplne vľavo. Ak číslo začína nulou, ide o kladné číslo. Ak začína 1, číslo je záporné číslo. Ak sa na uloženie rozsahu možných čísel použije šestnásť bitov, ako bit znamienka sa použije bit úplne vľavo. Ak číslo začína 0, t číslo je kladné číslo. Ak začína 1, číslo je záporné číslo. Čísla v tomto tvare sa nazývajú čísla so znamienkom.

V praxi môžu byť čísla so znamienkom pre 8 bitov, 16 bitov, 32 bitov a 64 bitov. Čím širší je počet bitov, tým väčší je rozsah možných čísel, ktoré je možné uložiť.

Dvojka doplní celé čísla
S dvojkovým doplnkom sú kladné čísla normálnymi číslami, s výnimkou toho, že číslica úplne vľavo je 0. Ak chcete získať zodpovedajúce záporné číslo pre dané kladné číslo, prevráťte každý bit v čísle a k výsledku pridajte 1. Invert alebo doplnok 0 je 1. Invert alebo doplnok 1 je 0. V nasledujúcich tabuľkách sú uvedené niektoré dva čísla doplnkov v ich rozsahoch:

Tabuľka 3.31
Dva dopĺňajú celé čísla v dvoch bitoch
Binárne Desatinné
01 +1
00 +0
jedenásť -1
10 -2

Kladné binárne čísla sú 00 a 01 (teda nula a jedna). V bite úplne vľavo nula ukazuje, že ide o kladné čísla. 00 je trochu v strede rozsahu. Na získanie -1 sa zistí, že invertované číslo 01 je 10. Pripočítaním 1 k tomuto (úplne vpravo) dostaneme 11.

Pretože sa používajú dva bity, zostáva len jeden bit na reprezentáciu čísel v rozsahu, ktorý pozostáva z čísel +1, +0 a -1 zodpovedajúcich 01, 00 a 11. Prvý bit označuje znamienko. Stáva sa, že 10 pre +2 nie je medzi týmito tromi binárnymi číslami. 10 začína 1, čo znamená, že musí byť záporným číslom v dvojke. Takže 10 je zahrnuté v rozsahu, čo znamená -2.

S dvoma bitmi v dvojkom doplnku je počet všetkých celých čísel (kladných a záporných), ktoré môžu byť reprezentované, 2 2 = 4 a nie 2 2 -1 = 3. Nuansa je výsledkom zahrnutia posledného záporného čísla, ktoré je záporné číslo 2 číslo s – 1. V tomto prípade –2 2-1 = -2 1 = -2. V rozsahu dvoch čísel doplnkov v 2 bitoch nie je +2.

Tabuľka 3.32
Dva dopĺňajú celé čísla v štyroch bitoch
Binárne Desatinné
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 +0
1111 -1
1110 1110
1101 -3
1101 -3
1100 -4
1011 -5
1010 -6
1001 1001
1000 -8

Kladné binárne čísla sú od 0000 do 0111 (to znamená od nuly do sedem). V bite úplne vľavo nula ukazuje, že ide o kladné čísla. 0000 je trochu v strede rozsahu. Na získanie -1 sa zistí, že invertované číslo 0001 je 1110. Pripočítaním 1 k tomuto (úplne vpravo) dostaneme 1111. Na získanie -2 sa zistí, že prevrátený 0010 je 1101. Pridanie 1 k tomuto ( od krajnej pravice) dáva 1110. Ostatné záporné binárne čísla ako -3 až -7 sú určené podobne.

Keďže sa používajú štyri bity, tri bity sú ponechané na reprezentáciu čísel v rozsahu, ktorý je +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 a -7 zodpovedajúce 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 1011 a 101.

-8, čo zodpovedá 1000, sa musí riešiť samostatne. Prvý bit pre všetky tieto čísla označuje znamienko 0 pre kladné čísla a 1 pre záporné čísla. Stáva sa, že 1000 nie je medzi týmito štrnástimi binárnymi číslami. 1000 začína 1, čo znamená, že musí byť záporné číslo, pokiaľ ide o dvojkový doplnok. Takže 1000 je zahrnuté v rozsahu, čo znamená -8.

So štyrmi bitmi v dvojke je počet všetkých celých čísel (kladných a záporných), ktoré môžu byť reprezentované, 2 4 = 16 a nie 2 4 – 1 = 15. Nuansa je výsledkom zahrnutia posledného záporného čísla, ktoré je záporné číslo 2 čísloŠírka – 1. V tomto prípade –2 4 -1 = -2 3 = -8. V rozsahu čísel nie je +8.

Predchádzajúcu analýzu pre dva, štyri a širšie bity v dvojkom doplnku možno použiť na binárne čísla so šírkou 8 bitov, 16 bitov, 32 bitov a 64 bitov.

Dvojkový doplnok obetuje prvý (ľavý) bit pre znamienko 0 pre kladné číslo a 1 pre záporné číslo. Pre „n“ bitovú širokú skupinu bitov sú 2 n celkovo kladné plus záporné čísla. Bolo by to 2 n -1, nebyť toho šťastného posledného (najmenšieho) záporného čísla. Najvyššie kladné číslo je +2 n-1 -1 a najmenšie záporné číslo je -2 n-1 -1. Bolo by to -2 n-1 -1, nebyť toho šťastlivca -2 n-1 zahrnuté.

Odčítanie čísel v dvojke
Pri odčítaní:

A – B = D

A sa nazýva minuend, B sa nazýva subtrahend a D sa nazýva rozdiel.

Na odčítanie jedného kladného binárneho čísla od iného kladného binárneho čísla sa minuend zapíše do dvojkového doplnku a subtrahend sa skonvertuje na jeho zápornú dvojku doplnku. Takže matematické vyhlásenie sa stáva:

A+ – B = D

Inými slovami, pri odčítaní dvoch doplnkov sa subtrahend prevedie na záporné číslo a potom sa pridá k minuendu.

Príklad 3.31:
Vyhodnoťte nasledujúci desatinný výraz v dvoch doplnkoch pomocou štyroch bitov:

6 – 4

Riešenie:
Binárne číslo pre 6 je 110. V 4-bitovom dvojkovom doplnku je to 0110. Binárne číslo pre +4 je 100. V 4-bitovom dvojkovom doplnku je to 0100. 0100, ktoré sa musí previesť na zápornú 4 v dvojke doplnok takto: Doplnok alebo inverzia 0100 je 1011. Pridaním 1 z pravého konca, ako sme to urobili navyše, dostaneme 1100. Desatinný výraz je teda:

6 – 4, ktoré sa stávajú:

0110 – 0100, čo je

0110 +(– 0100) = 0110 + 1100 vykonané ako v predchádzajúcej časti pridávania ako:

Poznámka: 0110 +(– 0100) je to isté ako 6 + – 4

Pri odčítaní dvojkového doplnku sa zahodí akýkoľvek prenos po poslednom stĺpci doľava. Pri odčítaní v desiatkovej sústave je matematický výrok:

6 – 4 = 2

Ak urobíte to isté v dvojkom doplnku, odpoveď je 0010, čo je +2 pri dvojkompletnom binárnom počítaní. Predchádzajúce odčítanie odpočítava menšie číslo od väčšieho čísla. V nasledujúcom príklade sa väčšie číslo odčíta od menšieho čísla. Tabuľku 3.32 si môžete pozrieť, aby ste zistili, či 0010 je skutočne dvojkový doplnok, ktorý je ekvivalentný +2.

Príklad 3.32:
Vyhodnoťte nasledujúci desatinný výraz v dvoch doplnkoch so štyrmi bitmi:

4 – 6

Riešenie:
Binárne číslo pre 4 je 100. V 4-bitovom dvojkovom doplnku je to 0100. Binárne číslo pre +6 je 110. V 4-bitovom dvojkovom doplnku je to 0110. 0110 sa musí previesť na zápornú 6 v dvojkom doplnku takto: Doplnok alebo inverzia 0110 je 1001. Pridaním 1 z pravého konca, ako sme to urobili v predchádzajúcom sčítaní, dostaneme 1010. Desatinný výraz je teda:

4 – 6, ktoré sa stávajú:

0100 – 0110, čo je

0100 +(– 0110) = 0100 + 1010 urobené ako v predchádzajúcej časti pridávania ako:

Poznámka: 4+ – 6 je to isté ako 0100 +(– 0110).

Pri odčítaní dvojkového doplnku sa zahodí akýkoľvek prenos po poslednom stĺpci doľava. Pri odčítaní v desiatkovej sústave je matematický výrok:

4 – 6 = -2

Ak urobíte to isté v dvojkom doplnku, odpoveď je 1110, čo je -2 v binárnom počítaní s dvoma doplnkami. Tabuľku 3.32 si môžete pozrieť, aby ste zistili, či 1110 je skutočne dvojkový doplnok, ktorý je ekvivalentný pre -2.

3.4 Násobenie binárnych čísel

Vo vyhlásení:

A x B = P

A sa nazýva multiplikand, B sa nazýva multiplikátor a P sa nazýva súčin. Výraz A x B znamená sčítanie A, B, koľkokrát, keď A a B sú celé čísla (celé čísla).

Násobenie v dvojkovej sústave je rovnaké ako násobenie v desiatkovej sústave. Avšak namiesto desiatkovej sústavy sa to robí binárne. Násobenie desiatkového výrazu 42 x 10 sa vykoná v binárnom systéme takto, kde 42 10 = 101010 2 a 10 10 = 1010 2 :

4 pridané čísla sa označujú ako čiastkové produkty. Odpoveď je produkt. Pridávanie čiastkových produktov sa uskutočňuje rovnakým spôsobom, ako bolo vysvetlené vyššie.

Násobenie možno vidieť aj takto: Pri tomto násobení so základom dva, ak je bit (číslica) v násobiteľi 1, najmenej významný bit jeho čiastkového súčinu je najmenej významný bit násobiteľa, ktorý sa prepisuje priamo pod neho; a zvyšok bitov multiplikandu sa opakuje doľava. Pri tomto násobení základu dva platí, že ak je bit (číslica) v multiplikátore 0, jeho čiastkový súčin pozostáva z nuly s najmenej významným bitom 0 priamo pod ním. Počet všetkých núl je počet bitov v multiplikande.

3.5 Delenie binárnych čísel

Vo vyhlásení:

A ÷ B = Q

A sa nazýva dividenda, B sa nazýva deliteľ a P sa nazýva podiel. Kvocient môže byť sprevádzaný zvyškom. Výraz A ÷ B znamená, koľkokrát možno pridať B, aby sa získalo A alebo sa k nemu priblížilo tak, že zvyšok je 0 alebo menší ako B.

Rozdelenie sa dá urobiť mnohými spôsobmi. Rozdelenie, ktoré je tu zobrazené, je oddelenie obnovy.

Obnova divízie
Toto je metóda dlhého delenia, ktorá sa učí v školách. Ak je 237 delené 6, odpoveď je 39, zvyšok 3. 237 10 v základe 2 je 11101101 2 a 6 10 v základe 2 je 110 2 . 39 10 v základe 2 je 100111 2 a 3 10 v základe 2 je 11 2 .

Takže 11101101 2 delené 110 2 dáva 100111 2 zvyšok 11 2 v základe dva. Pri metóde obnovy sú binárne čísla obyčajnými číslami a nemusia byť nevyhnutne v doplnku dvoch. Nasledujúca štruktúra rozdeľuje 11101101 2 o 110 2 dať 100111 2 zvyšok 11 2 :

Odčítanie sa vykonáva obyčajne a nie pomocou doplnku dvoch. Keďže toto je základ dva, požičať je dva a nie desať. Čiastočné dividendy sú 10, 101, 1011, 1010 a 1001. 11 je zvyšok. Keďže deliteľ je trojciferný, delenie sa vykonáva zásadne po trojciferných skupinách z daného deliteľa. Kvocient je celé číslo (celé číslo) a pre tento problém je to 100111. Výsledok kvocientu a zvyšku je podľa očakávania.

3.6 Aritmetické operácie so softvérom a hardvérom

Základná doska počítača má hodiny. Tikot hodín sa nazýva impulzy. Pri každom taktovom impulze sa vykoná jedno alebo viac rozhodnutí na rôznych miestach základnej dosky; a to súvisí s programovaním (softvérom).

Vo vnútri mikroprocesora sú dva druhy obvodov, ktoré sa nazývajú: kombinované logické obvody a sekvenčné logické obvody. Existuje ďalší druh obvodu nazývaný multiplexor. Sčítanie, násobenie a delenie môže prebiehať v rámci jedného hodinového intervalu pomocou kombinačnej logiky (obvodu). Zatiaľ čo programovanie (softvér) vykonáva rozhodnutie pri každom hodinovom impulze pomocou sekvenčných logických obvodov a multiplexerov.

Keď sa odčítanie vykonáva pomocou dvojkového doplnku, sú potrebné aspoň dva hodinové impulzy. Pri prvom hodinovom impulze multiplexor nasmeruje subtrahend na sadu brán NOT (jedna brána NOT na číslicu). Pri druhom hodinovom impulze kombinačná logika pridáva 1 k výstupu brán NOT a pokračuje v pridávaní výsledného subtrahendu a minuendu. Všetko toto pridávanie sa môže uskutočniť v rámci jedného hodinového intervalu.

Sčítanie, násobenie a delenie môže byť stále nefunkčné pri programovaní pomocou pravdivostných tabuliek. Nie je to však zahrnuté v tomto online kariérnom kurze.

3.7 Logické operácie v mikroprocesore

AND, OR, XOR a Invert

A
Nasledujúca tabuľka ilustruje bitové AND. To znamená, že pre dve rôzne binárne čísla sú zodpovedajúce bity spojené AND na základe tabuľky pravdy AND:

Pohyb zľava doprava, 1 AND 1 = 1; 0 a 1 = 0; 0 A 0 = 0; 1 a 0 = 0; a tak ďalej v súlade s tabuľkou pravdy AND.

ALEBO
Nasledujúca tabuľka ilustruje bitové ALEBO. To znamená, že pre dve rôzne binárne čísla sú príslušné bity OR na základe tabuľky pravdy OR:

Pohyb zľava doprava, 1 ALEBO 1 = 1; 0 alebo 1 = 1; 0 ALEBO 0 = 0; 1 alebo 0 = 1; a tak ďalej v súlade s tabuľkou pravdy OR.

ZADARMO
Nasledujúca tabuľka ilustruje Bitwise exclusive-OR. To znamená, že pre dve rôzne binárne čísla sú príslušné bity XORované na základe tabuľky pravdy XOR:

Pohyb zľava doprava, 1 XOR 1 = 0; 0 XOR1 = 1; 0 XORo = 0; 1 XOR° = 1; a tak ďalej v súlade s tabuľkou pravdy XOR.

Invertovať (NIE)
Nasledujúca tabuľka ilustruje Bitwise NOT (invertovať). To znamená, že pre jedno binárne číslo je tentoraz každý bit invertovaný na základe tabuľky NOT pravdy:

Pohyb zľava doprava, NIE 1 = 0; NIE 0 = 1; NIE 0 = 1; NIE 1 = 0; a tak ďalej v súlade s tabuľkou NOT Truth Table.

Radenie doprava alebo doľava

Posun doprava
Nasledujúce binárne číslo je posunuté o 3 bitové pozície doprava, pričom nuly sú vložené do uvoľnených bitových pozícií vľavo:

Posun je možné vykonať o jedno, dve, tri, štyri, atď.

Shift doľava
Nasledujúce binárne číslo je posunuté o 3 bitové pozície doľava, pričom nuly sú vložené do uvoľnených bitových pozícií vpravo:

Posun je možné vykonať o jedno, dve, tri, štyri, atď.

Otáčanie doprava alebo doľava

Otáčanie je podobné ako radenie. Robí sa to jeden po druhom. Pri otáčaní doprava bity, ktoré opúšťajú pravý koniec, neopadávajú ako pri posúvaní; nahrádzajú uvoľnené bity vľavo, jeden po druhom. Pri otáčaní doľava bity, ktoré opúšťajú ľavý koniec, neopadávajú ako pri radení; nahrádzajú uvoľnené bity vpravo, jeden po druhom.

Otočiť doprava
Nasledujúce binárne číslo je otočené o 3 bitové pozície doprava:

Otáčanie je možné vykonať o jedno, dve, tri, štyri atď. miesta.

Rorate doľava
Nasledujúce binárne číslo je otočené o 3 bitové pozície doľava:

Otáčanie je možné vykonať o jedno, dve, tri, štyri atď. miesta.

3.8 Sada znakov ASCII a jej kódové hodnoty

ASCII je skratka pre „American (U.S.A) Standard Code for Information Interchange“. Predstavte si klávesnicu s 96 klávesmi. Ide o ideálnu klávesnicu, kde sa klávesy s veľkými písmenami líšia od klávesov s malými písmenami. Každý ďalší kláves predstavuje znak, ktorý sa nachádza na anglickej (U.S.A) klávesnici. Znaky a kódy (zodpovedajúce čísla pre znaky) sú uvedené v nasledujúcom zozname:

V tejto tabuľke je prvých 32 znakov (vrátane znaku s 00 16 = 0 10 kód) sú netlačiteľné znaky. Sú to riadiace postavy. Nie sú vidieť na obrazovke (monitore), kde je všetko rovnaké. Majú len účinky. Porozprávajme sa o tom neskôr.

Ostatné znaky sú tlačové znaky; sú vidieť na obrazovke. Existuje 128 znakov ASCII. 2 7 = 128,1111111 2 = 127 10 . 7 v 2 7 znamená 7 bitov.

Teraz, 1111111 2 + 1 2 je to isté ako:

Tu, 10 000 000 2 = 128 10 . Je ich 128 10 znaky v predchádzajúcom zozname (tabuľke) znakov ASCII. To zahŕňa nulový znak, ktorého kód v šestnástom (šestnástkovom) základe je 00, čo je ekvivalent 0 v základnom desať.

Keďže je celkovo 128 znakov, 128 mínus 32 netlačiteľných znakov dáva 96 tlačových znakov. V tejto časti sa predpokladá, že existuje ideálna klávesnica s 96 znakmi, ktoré sú tlačiteľné znaky. Na tejto ideálnej klávesnici sa klávesy pre veľké anglické znaky líšia od klávesov pre malé anglické znaky.

Každý znak na klávesnici je reprezentovaný základným počtom 7 bitov, ktoré nie sú uvedené v zozname. Veľké písmeno „N“ je napríklad reprezentované siedmimi bitmi 1001110 v základe 2. Ak chcete previesť 1001110 2 do základu 16, pred ním uveďte 0 a výsledok zoskupte do štvorbitových podskupín takto:

| 0100 | 1110 | 2 = | 4 | E | 16

To je 01001110 2 = 4E 16 . Previesť 4E 16 na základ desať urobte nasledovné:

4 x (16) 1 + E x (16) 0 = 4 x 16 + E x 1 = 4 x 16 + 14 x 1 = 64 + 14 = 78 10

Napravo od „N“ v zozname (tabuľke) je hexadecimálne číslo 4E a desatinné číslo 78.

Ako ďalší príklad je znak „[“ reprezentovaný siedmimi bitmi 1011011 v základe 2. Ak chcete previesť 1011011 2 do základu 16, pred ním uveďte 0 a výsledok zoskupte do štvorbitových podskupín takto:

| 0101 | 1011 | 2 = | 5 | B | 16

To je 01011011 2 = 5B 16 . Ak chcete previesť 5B16 na základnú desiatku, postupujte takto:

5 x (16) 1 + B x (16) 0 = 5 x 16 + B x 1 = 5 x 16 + 11 x 1 = 80 + 11 = 91 10

Napravo od „[“ v zozname (tabuľke) je hexadecimálne číslo 5B a desatinné číslo 91.

Ako ďalší príklad je znak pre desiatkové číslo „5“ reprezentovaný siedmimi bitmi 0110101 v základe 2 a nie 0000101 v základe 2. Previesť 0110101 2 do základu 16, pred ním uveďte 0 a výsledok zoskupte do štvorbitových podskupín takto:

| 0011 | 0101 | 2 = | 5 | B | 16

To je 00110101 2 = 35 16 . Ak chcete previesť 3516 na základnú desiatku, postupujte takto:

3 x (16) 1 + 5 x (16) 0 = 3 x 16 + 5 x 1 = 3 x 16 + 5 x 1 = 48 + 5 = 53 10

Napravo od „5“ v zozname (tabuľke) je hexadecimálne číslo 35 a desatinné číslo 53.

Keďže počítač pracuje v bajtoch, po stlačení klávesu na ideálnej klávesnici sa do mikroprocesora (základnej dosky) odošle osem bitov. Ideálna klávesnica je periféria, ktorá je oddelená od systémovej (základnej) jednotky počítača. Má elektronický obvod (IC), ktorý vytvára sedem bitov a pred ich odoslaním cez kábel na základnú dosku systémovej jednotky je pred ním nula. Zo vstupného portu (vstupného obvodu) základnej dosky ide do mikroprocesora, ktorý je tiež na základnej doske. Z mikroprocesora ide do pamäte, ktorá je tiež osadená na základnej doske.

Takže po stlačení klávesu „N“ na ideálnej klávesnici sa do mikroprocesora odoberie osem bitov 01001110. Z mikroprocesora sa prenesú do pamäte, kde zostanú v pamäťovom mieste ako bajt. Počítačový programátor by mal mať na pamäti, že osem bitov 01001110 2 je rovnaký ako 4E 16 čo je rovnaké ako 78 10 .

Po stlačení klávesu „[“ na ideálnej klávesnici sa do mikroprocesora dostane osem bitov 01011011. Z mikroprocesora sa prenesú do pamäte, kde zostanú v pamäťovom mieste ako bajt. Počítačový programátor by mal mať na pamäti, že osem bitov 01011011 2 je rovnaký ako 5B 16 čo je rovnaké ako 91 10 .

Keď sa stlačí kláves „5“ na ideálnej klávesnici ako znak a nie ako desatinné číslo, do mikroprocesora sa dostane osem bitov 00110101. Z mikroprocesora sa prenesú do pamäte, kde zostanú v pamäťovom mieste ako bajt. Počítačový programátor by mal mať na pamäti, že osem bitov 00110101 2 je to isté ako 35 16 čo je rovnaké ako 5310 10 .

Sú chvíle, keď program beží a čaká na zadanie desatinného čísla 5 do počítača. V tejto situácii, ak sa stlačí kláves „5“ na ideálnej klávesnici, stále sa do mikroprocesora prenesie osembitový kód 00110101. Keďže je potrebné desiatkové číslo 5 a nie znak „5“, kúsok kódu (krátky program) z pamäte používa mikroprocesor na konverziu znakového kódu 00110101 v základni dva na číslo doplnku dvojky 00000101. 2 pred odoslaním do pamäťového miesta ako dvojkový doplnkový bajt. Počítačový programátor musí mať na pamäti, že 00000101 znamená 5 10 v základe 2 a líši sa od čísel kódu 00110101 2 , 35 16 a 53 10 čo znamená znak „5“. Aby sa v pamäti zobrazilo číslo dvojky 00000101, iný krátky program musí previesť 00000101 z pamäte na 00110101. Je to 00110101, čo je rovnaké ako 35 16 čo je rovnaké ako 53 10 ktorý je zobrazený na monitore (alebo vytlačený na papieri tlačiarňou).

3.9 Formát čísla s pohyblivou rádovou čiarkou

Číslo bez desatinnej časti je celé číslo. Číslo 36 je celé číslo. 36,375 nie je celé číslo. Ide o desatinné číslo s desatinnou časťou. Desatinná časť 0,375 je zlomok, ktorý je menší ako 1.

36.375 sa interpretuje v desiatkovej forme ako:

teraz:

Takže 100 100 2 = 3610, čo je celá číselná časť 36,375 10 .

teraz:

Takže 0,011 2 = 0,375 10 čo je desatinná časť čísla 36,375 10 .

∴ 36,375 10 = 100 100,011 2

Daj to inak:

100100,011 2 = 36 375 10

Čísla sú v počítači zastúpené v základe 2 a nie v základe 10, pričom všetko je rovnaké. Keďže bunka v registri v mikroprocesore alebo bunka v pamäti môže mať iba 1 alebo 0, nie je priestor na uloženie desatinnej čiarky. To predstavuje problém. Ako rozlíšenie existuje IEEE-754 jednoduchá 32-bitová reprezentácia s pohyblivou rádovou čiarkou a IEEE-754 s dvojitou presnosťou 64-bitová reprezentácia s pohyblivou rádovou čiarkou.

32-bitový formát čísla s pohyblivou rádovou čiarkou
Číslo 100100.0112 možno vyjadriť ako:

100100,011 2 = 1,00100011 2 x 2 +5

Pravá strana symbolu = sa v matematike označuje ako základná dvojka štandardnej formy ľavej strany 100100.011 2 .

Teraz 00100011 z 1,00100011 2 na pravej strane symbolu = bez predchádzajúceho „1“. a bez 2 pre základ sa nazýva explicitný significand. V tomto prípade sa binárny bod presunie o päť miest vľavo, aby mal „1“. Nezamieňajte medzi desatinnou čiarkou a binárnou čiarkou. Binárna bodka je pre základ 2, kým desatinná bodka pre základ 10. „1“. za ktorým nasleduje 00100011 na pravej strane symbolu =, bez 2 pre základ, tvorí skutočný significand. Avšak 1,00100011 sa nazýva implicitný significand.

Po significand na pravej strane je „x 2 +5 “výraz. Pri tomto výraze sa +5 nazýva exponent. Znamienko plus znamená, že binárny bod sa musí posunúť o päť miest dopredu, aby bol vo svojej normálnej pôvodnej polohe a 2 je základ číslovania. Predchádzajúcu rovnicu možno zapísať opačne ako:

1,00100011 2 x 2 +5 = 100 100,011 2

Pri 32-bitovej reprezentácii s pohyblivou rádovou čiarkou je to „1,00100011 2 x 2 +5 “, ktorý sa používa a nie len „100100.011 2 “. 2 pre základ sa nezaznamenáva. 32-bitová reprezentácia s pohyblivou rádovou čiarkou pre „1.00100011 2 x 2 +5 ” číslo, ktoré sa rovná 36,375 10 = 100 100,011 2 , je uvedený v nasledujúcej tabuľke:

Existujú 32-bitové pozície, ktoré sú číslované od pravého konca, začínajúc od 0. Prvý bit na ľavom konci je znamienkový bit. Ak je číslo kladné, tento bit je 0. Ak je číslo záporné, tento bit je 1 (-1 pozostáva z dvoch znakov a nemožno ho vložiť do žiadnej bunky). 1,00100011 2 x 2 +5 čo sa rovná 36,375 10 čo sa tiež rovná 100100,011 2 je kladné číslo. Takže prvý bit je 0.

Existuje osem bitových pozícií pre exponent, počnúc od pozície 30 do pozície 23 vrátane. Exponent, ktorý je tam zapísaný, je však 10000100 2 čo sa rovná 132 10 . Exponent čísla úroku je v skutočnosti +5 zo základu dvoch. Takže, čo sa stane?

Teraz v 32-bitovom formáte je exponent 0 zapísaný ako 01111111 2 čo sa rovná 127 10 . +5 10 je +101 2 . Takže pri príchode na 10 000 100 2 v exponentnej časti v tabuľke, 101 2 bol pridaný k 01111111 2 , zodpovedajúcim spôsobom. To znamená, že 5 bolo pridané k 127, aby bolo 132 10 .

Significand bez „1.“ obsadil pozície 22 až 15 vrátane. Všimnite si, že 1 z „1“. nebol uvedený v 32-bitovom reťazci. Nikdy to nie je uvedené – akceptujte to. Zvyšok buniek až po pozíciu 0 je vyplnený nulami.

Ak je skutočný exponent -5, potom sa 5 odpočíta od 127 10 mať 122 10 . To zodpovedá odpočítaniu 101 2 od 01111111 2 mať 01111010 2 .

Pri celej predchádzajúcej ilustrácii je číslo +1, ktoré sa rovná 1,0 x 2 0 = 1,0 x 1 = 1,0 je vyjadrené ako:

Všimnite si, že '1.' 1,0 x 2 0 nie je uvedené vo formáte. Nikdy to nie je uvedené. Ďalšia zmiešaná frakcia, ktorá je po 1,0 kladná, je:

Všimnite si 1 na pravom konci. Toto znázornenie je číslo:

Rozdiel medzi 1,0000001192092896 a 1,0 je:

1,0000001192092896 – 1,0 = 0,0000001192092896

Čísla s desatinnými časťami sú zmiešané zlomky. Nie všetky zlomky medzi 1 10 a 2 10 môžu byť zastúpené v počítači. Dá sa predpokladať, že najmenšia zlomková medzera medzi po sebe idúcimi zmiešanými číslami s 32-bitovým formátom s pohyblivou rádovou čiarkou je 0,0000001192092896. Očakávajte, že interval pre dvojnásobnú presnosť bude menší. Pozrite si nasledujúci obrázok.

Pri vyjadrení čísla 0,0 nenadväzuje na predchádzajúce argumenty. Reprezentácia 0,0 je deklarovaná a musí sa ako taká naučiť. Na vyjadrenie 0,0 sú všetky bunky pre significand 0 a všetky bunky pre exponent sú tiež nula. Znamienko môže byť 0 alebo 1. Bohužiaľ to vedie k kladnej 0 a zápornej 0 takto:

V skutočnom živote je len jedna nula. Kladná 0 a záporná 0 neexistujú. 0 sa však zvyčajne považuje za kladné. Kladná 0 a záporná 0 tu existujú kvôli tomuto konkrétnemu popisu formátu. Číselná os (pozri vyššie) môže mať aj +0 a -0, ale existuje len jedna nula.

64-bitový formát čísla s pohyblivou rádovou čiarkou
64-bitový formát s pohyblivou rádovou čiarkou je podobný 32-bitovému formátu, ale s nasledujúcimi rozdielmi:

  • Existuje 64 bitov, ktoré reprezentujú číslo.
  • Po znamienkovom bite je 11 bitov pre číslo exponentu.
  • Číslo exponentu pre nulový index (2 0 ) je 1023 10 = 01111111111 2 .
  • Po jedenástich bitoch nasleduje 52 bitov pre explicitný significand.
  • Má širší rozsah čísel ako 32-bitový formát.

Všimnite si, že '1.' ktorý je na začiatku significand, stále nie je zahrnutý medzi 64 bitov, rovnako ako nie je zahrnutý medzi 32 bitov pre 32-bitový formát.

Jedným z najdôležitejších rozdielov medzi 64-bitovým formátom a 32-bitovým formátom je, že rozdiel medzi po sebe idúcimi zmiešanými zlomkami v 64-bitovom formáte je menší ako v 32-bitovom formáte.

V 64-bitovom formáte sa interval (medzera) medzi 1,0 a nasledujúcim zmiešaným zlomkom môže vypočítať takto:

1,0 je

0 01111111111 00000000000000000000 00000000000 0000000000000000000000 2

Je to ekvivalent „1.“, ktorá nebola uvedená v reťazci, vynásobená 2 umocnenou (index) 0 (s exponentom 1023 10 = 01111111111 2 za 2 0 = 1). Reťazec je 1,0 x 2 0 .

Ďalšia zmiešaná frakcia väčšia ako 1,0 je:

0 01111111111 00000000000000000000 00000000000 000000000000000000001 2

Toto je ekvivalentné „1“. ktorý nie je uvedený v reťazci, nasleduje 51 núl a potom 1, vynásobená 2 umocnenou na 0 (s exponentom 1023 10 = 011111111112 2 za 2 0 = 1). Toto je rovnaké ako:

+2 0 × (1 + 2- -52 ) ≈ 1,0000000000000002

≈ znamená približne rovné.

teraz:

1,0000000000000002 – 1,0 ≈ 0,0000000000000002

Zodpovedajúca hodnota intervalu pre 32-bitový formát je 0,0000001192092896 ≈ 0,00000012.

0,000000000000002 je oveľa menšie ako 0,00000012. Takže medzi dvoma po sebe idúcimi celými číslami (napr. 3 a 4) v 64-bitovom formáte je oveľa viac zmiešaných zlomkov ako medzi dvoma po sebe idúcimi celými číslami v 32-bitovom formáte.

Počet zmiešaných zlomkov medzi dvoma po sebe idúcimi celými číslami na číselnej osi je nekonečný. Žiadny formát (napr. 32-bitový alebo 64-bitový) teda nemôže poskytnúť všetky zmiešané zlomky medzi akýmikoľvek dvoma po sebe idúcimi celými číslami (celými číslami). Čím menšia je medzera (interval) medzi dvoma po sebe nasledujúcimi celými číslami poskytnutými formátom (napr. 32-bitový alebo 64-bitový), tým väčší je počet zmiešaných zlomkov medzi po sebe idúcimi celými číslami (pre číselnú os).

Dôvody, prečo je 64-bitový formát opísaný ako dvojnásobná alebo vyššia presnosť v porovnaní s 32-bitovým formátom, spočíva v tom, že interval medzi dvoma po sebe idúcimi zmiešanými zlomkami ohraničenými dvomi po sebe idúcimi celými číslami pre 64-bitový formát je menší ako zodpovedajúcich 32 -interval bitového formátu. Tiež existuje viac možných zmiešaných zlomkov medzi dvoma ohraničenými celými číslami pre 64-bitový formát ako zodpovedajúcim spôsobom pre 32-bitový formát.

Konverzia desatinnej časti (zlomku) desatinného čísla na binárnu časť
36.375 je desiatkové číslo s desatinnou časťou „.375“. Desatinná časť „.375“ je zlomok medzi nulou a jednotkou. 0,5 v základnej desiatke má rovnakú hodnotu ako 1/2 v základnej dvojke. 0,5 10 ktorý je vyjadrený expanziou základne dva je:

Nie je to 0,101 2 čo znamená 0,625 10 . Desatinná časť desatinného čísla má ekvivalentnú binárnu časť pre zodpovedajúce binárne číslo. Ak chcete previesť desatinné číslo, napríklad 36,375 10 na základ dva, konvertujte 36 na binárne a potom konvertujte 0,375 tiež na binárne. Potom oba výsledky spojte s binárnym bodom. Metódy prevodu týchto dvoch častí sú odlišné. Ako previesť desiatkové celé číslo na základ 2 je vysvetlené v kapitole 1.

Ak chcete previesť desatinný zlomok na binárny zlomok, postupujte podľa nasledujúcich krokov:

  • Vynásobte desatinný zlomok (desatinnú časť) číslom 2. Celé číslo, ktoré z toho vznikne, je prvá dvojková číslica.
  • Opakujte predchádzajúci krok s výsledkom v zlomkovom desiatkovom čísle, aby ste získali ďalšiu binárnu číslicu.
  • Opakujte predchádzajúci krok, kým desatinný zlomkový výsledok nebude 0,0000—.

Príklad: Preveďte zlomkovú časť 36,375 10 na ekvivalentnú zlomkovú časť v základe dva.

Riešenie:

Všimnite si, že v treťom kroku sa 0,500 vynásobilo 2 a nie 1,500. Zodpovedajúci binárny zlomok sa číta v poslednom stĺpci zhora. A tak je nasledujúci výsledok:

.375 10 = 0,011 2

Prevod binárnej časti (zlomku) binárneho čísla na desatinnú časť
Aby ste to dosiahli, rozšírte binárny zlomok na recipročné mocniny 2.

Príklad: Preveďte zlomkovú časť čísla 100100,011 2 na ekvivalentnú zlomkovú časť v základe desať.

Riešenie:

3.10 Predpony čísel vo výpočtovej technike

V normálnom živote 1 kilo znamená 1000, čo je skrátené v k (malé písmená) ako 1 kg. Vo výpočtovej technike 1 kilo znamená 2 10 = 1024, ale je skrátený v K (veľké písmená) ako v 1 kB. V bežnom živote 1 mega znamená 1 000 000, čo je v M (veľké písmená) skrátené ako 1Mg. Vo výpočtovej technike 1 mega znamená 2 dvadsať = 1 048 576 = 2 10 x 2 10 = 1024 x 1024 = 1 048 576 a je stále skrátené v M (veľké písmená) ako 1 Mbit. V bežnom živote 1 giga znamená 1 000 000 000, skratka G (veľké písmená) ako 1Gg. Vo výpočtovej technike 1 giga znamená 2 30 = 1 073 741 824 = 2 10 x 2 10 x 2 10 = 1024 x 1024 x 1024 = 1 073 741 824 a stále sa používa skratka G (veľké písmená) ako 1 Gbit. Nasledujúca tabuľka uvádza význam štyroch prefixov v bežnom živote a vo výpočtovej technike:

3.11 Problémy

Čitateľovi sa odporúča, aby pred prechodom na ďalšiu kapitolu vyriešil všetky problémy v kapitole.

  1. Nakreslite číselnú os s celými číslami od -10 do +10.
  2. Pridajte nasledujúce binárne čísla do 8-bitového dvojkového doplnku: 101010 2 a 1111 2 .
  3. Na odčítanie binárneho čísla 1111 použite iba dvojbitový komplementový prístup v 8-bitoch 2 z binárneho čísla 101010 2 .
  4. Nájdite produkt 10110 2 x 1101 2 v základe dva.
  5. Deliť 36,375 10 o 1000 10 v desiatkovej a dvojkovej sústave a porovnajte výsledky.
  6. Použite 8 bitov podľa vlastného výberu na ilustráciu logického AND, OR, XOR, Invert, Shift Right, Shift Left, Rotate Right a Rotate Left. Každý bajt by mal obsahovať kombináciu 1 a 0.
  7. a) Napíšte číselný kód pre nulový znak ASCII v hexadecimálnej, binárnej a desiatkovej sústave.
    b) Napíšte číselný kód pre ASCII znak „1“ v hexadecimálnej, binárnej a desiatkovej sústave.
    c) Napíšte číselný kód pre ASCII znak „A“ v hexadecimálnej, binárnej a desiatkovej sústave.
    d) Napíšte číselný kód pre ASCII znak „a“ v hexadecimálnej, binárnej a desiatkovej sústave.
  8. Previesť 49,49 10 do základu dva. Preveďte svoj výsledok do 32-bitového formátu IEEE s pohyblivou rádovou čiarkou.
  9. a) Ako sa líši 64-bitový formát IEEE s pohyblivou rádovou čiarkou od 32-bitového formátu?
    b) Uveďte dva súvisiace dôvody, prečo je 64-bitový formát opísaný ako dvojnásobná alebo vyššia presnosť oproti formátu
    32-bitový formát.