Поглавље 3: Операције бинарних бројева у микропроцесору

Poglavle 3 Operacije Binarnih Brojeva U Mikroprocesoru



Поглавље 3: Операције бинарних бројева у микропроцесору

3.1 Увод

У рачунару се аритметичке операције обављају у 8 бита, 16 бита, 32 бита или 64 бита. Број као што је 3 у бинарном систему је 11. Ако се операција треба обавити у 8 бита, ово се сматра 00000011; претходи му 0 нула.







За бинарни број као што је 10000101, најзначајнији бит је крајње лево. У овом случају је 1. Најмањи битни бит је екстремни бит са десне стране, који је и даље 1, за број. Најзначајнији бит је скраћен као МСБ. Најмањи значајан бит је скраћен као ЛСБ.



БИнарни дигиТ је скраћено БИТ и једноставно се пише као бит. У броју 10010011 свака јединица или нула је бит. Група од четири бита се назива грицкање. Група од осам битова се назива бајт. Бајт се састоји од два грицкања. Нижи грицкање је грицкање за ЛСБ, а више грицкање је грицкање за МСБ.



Група од 8 бита, 16 бита, 32 бита или 64 бита назива се реч, све док та група преноси информације осим што означава број. Група се зове реч, на пример, ако је инструкција ниског нивоа у рачунару. Постоји и реч од 24 бита, али то се данас не користи.





Ендианнесс се односи на редослед којим бајтови формирају реч. Узмите у обзир 24-битну реч – 100100001111010100100010. Ова реч се састоји од три бајта који су:

10010000 11110101 00100010



Најзначајнији бајт је крајњи леви бајт. Када је бајт са крајње леве стране најзначајнији бајт, а бајт са крајње десне стране је најмањи, ово се назива Биг Ендиан репрезентација речи. Представа Литтле Ендиана је супротна.

Меморија рачунара је низ ћелија, а свака ћелија садржи бајт. Прва ћелија у меморији рачунара је за бајт 0, друга за бајт 1, трећа за бајт 2 итд. Са великим ендианнессом и за претходну реч, најзначајнији бајт се чува у ћелији бајта 0, средњи бајт се чува у ћелији бајта 1, а најмањи бајт се чува у ћелији бајта 2. То значи да има значајнијих бајтова у доњој меморијској ћелији.

Претходна 24-битна реч се може написати обрнутим редоследом од бајтова на следећи начин:

00100010 11110101 10010000

Сада, најмањи бајт је на крајњој левој страни, а најзначајнији бајт је на крајњој десној страни. Када је бајт на крајњој левој страни најмањи значајни бајт, а бајт на крајњој десној страни је најзначајнији бајт, то је Литтле Ендиан репрезентација речи. Са малим ендианнессом и за претходну реч, најмањи бајт се чува у ћелији бајта 0, средњи бајт се чува у ћелији бајта 1, а најзначајнији бајт се чува у ћелији бајта 2. То значи да у доњој меморијској ћелији постоји мање значајан бајт.

Ендианнесс се не користи за битове у бајту. Такође се не користи за грицкање у бајту. Користи се само за редослед бајтова.

Бројевна линија
Број без знака је позитиван број. Позитивни бројеви су бројеви од нуле навише. Постоје и негативни бројеви. Позитивни и негативни бројеви могу се приказати на бројевној правој. Следећа бројевна линија приказује позитивне и негативне целе бројеве (целе бројеве) близу нуле:

Негативни бројеви се смањују од нуле наниже (лево). У многим ситуацијама, нула се сматра позитивном. Међутим, у неким ситуацијама се сматра негативним. Зато је испред нуле, у доњој нумерацији, на дијаграму знак плус и минус. Када је број позитиван, његов знак се може изоставити; ово је случај за горњу нумерацију на дијаграму. Знак минус испред негативног броја се никада не изоставља.

3.2 Сабирање бинарних бројева

У додатку:

А + Б = С

А се назива аугенд, Б се назива сабирком, а С се назива збир.

Размислите о следећем сабирању два позитивна броја у основи два:

У основи два, једине могуће цифре су 0 и 1. Сабирање у бази 2 је слично сабирању у основи десет, али два у основи два је једна нула (10). Када је збир два бита у колони 10, уписује се 0 и 1 се преноси у непосредну леву колону; да се дода збиру два тамо бита. Када је укупан збир три, то значи 11 у основи два. Десно 1 у 11 је уписано, а лева 1 се преноси да би се додала збиру непосредних битова леве колоне. У оба случаја, 1 ношен лево назива се ношење.

Читајући претходну табелу сабирања са десне стране, у другој колони (с десне стране) налази се пренос који је резултат 1+1 = 10. У трећој колони је пренос који је резултат 1+1+ преноса 1 = 11. У четвртој колони постоји пренос који је резултат 0+1+ преноса од 1 = 10. У петој колони нема преноса јер је збир 0+0+ пренос од 1 = 1. остатак колона не укључује ношење.

Бројање колона почиње од десног краја. Са 16-битним сабирањем, може доћи до преноса из осме колоне у девету колону (померање улево). Следећа табела то илуструје:

Аритметичке и логичке операције се одвијају у микропроцесору на матичној плочи рачунара.

За 8-битни рачунар речи, пренос не може да иде од осмог бита до деветог бита аутоматски помоћу хардвера. Дакле, да бисте додали две 16-битне групе у такав рачунар, сабирање се мора извршити два пута у паровима осам-осам битова. Преношење се помера и врши помоћу софтвера (програмирање).

Да бисте додали два броја, бројеви се могу прво претворити у њихов комплементарни облик (погледајте доле) пре сабирања.

3.3 Комплемент двојке и његово одузимање бинарних бројева

На матичној плочи рачунара налази се меморија и ту су микропроцесор и друга кола. Меморија је низ осмобитних ћелија. За бајт, сваки бит иде у ћелију. Микропроцесор има неколико локација меморијског типа. Ове локације меморијског типа називају се регистри. Дакле, у рачунару се групе бајтова могу привремено ускладиштити у меморији или у регистрима микропроцесора.

У било ком од ових складишта, свака ћелија може узети или 1 или 0, и ништа друго. У животу постоје позитивни и негативни бројеви. Позитиван број почиње са знаком плус (+), а негативан са негативним знаком (-). Када је знак изостављен, број се сматра позитивним бројем.

Да би се решио овај проблем означавања предзнака броја у рачунару, цели бројеви се чувају у распонима. Цели бројеви су цели бројеви. Ако се осам битова користи за чување опсега могућих бројева, крајњи леви бит се користи као предзнак. Ако број почиње са 0, број је позитиван број. Ако почиње са 1, број је негативан број. Ако се шеснаест битова користи за чување опсега могућих бројева, крајњи леви бит се користи као предзнак. Ако број почиње са 0, т број је позитиван број. Ако почиње са 1, број је негативан број. Бројеви у овом облику називају се бројеви са знаком.

У пракси, могу бити потписани бројеви за 8 бита, 16 бита, 32 бита и 64 бита. Што се већи број битова користи, већи је опсег могућих бројева који се могу сачувати.

Комплементни цели бројеви два
Са комплементом два, позитивни бројеви су нормални бројеви за бројање, осим што је крајња лева цифра 0. Да бисте добили одговарајући негативан број за било који позитиван број, обрните сваки бит у броју и додајте 1 резултату. Инвертовање или допуна 0 је 1. Инвертовање или допуна 1 је 0. Следеће табеле показују бројеве комплемента неке две у њиховим опсезима:

Табела 3.31
Комплементарни цели бројеви у два бита
Бинарно Децималан
01 +1
00 +0
Једанаест -1
10 -2

Позитивни бинарни бројеви су 00 и 01 (то је нула и један). У крајњем левом биту, нула показује да су то позитивни бројеви. 00 је нешто у средини опсега. Да би се добило -1, инвертовање броја 01 је 10. Додавање 1 овоме (крајње десно) даје 11.

Пошто се користе два бита, преостаје само један бит за представљање бројева у опсегу који се састоји од бројева +1, +0 и -1 који одговарају 01, 00 и 11. Први бит означава знак. Дешава се да 10 за +2 није међу ова три бинарна броја. 10 почиње са 1 што значи да мора бити негативан број у комплементу два. Дакле, 10 је укључено у опсег, што значи -2.

Са два бита у комплементу два, број свих целих бројева (позитивних и негативних) који се могу представити је 2 2 = 4 а не 2 2 -1 = 3. Нијанса је резултат укључивања последњег негативног броја који је негативан од 2 нумбервитх – 1. У овом случају, -2 2-1 = -2 1 = -2. Не постоји +2 у опсегу комплементарних бројева два у 2 бита.

Табела 3.32
Комплементарни цели бројеви у четири бита
Бинарно Децималан
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

Позитивни бинарни бројеви су од 0000 до 0111 (односно од нула до седам). У крајњем левом биту, нула показује да су то позитивни бројеви. 0000 је нешто у средини опсега. Да би се добило -1, инвертовање броја 0001 је 1110. Додавање 1 овоме (крајње десно) даје 1111. Да би се добило -2, нађено је да је инвертовање броја 0010 1101. Додавање 1 овоме ( са крајње десне стране) даје 1110. Слично су одређени и остали негативни бинарни бројеви попут -3 до -7.

Пошто се користе четири бита, остављена су три бита да представљају бројеве у опсегу који су +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 и -7 који одговарају 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 1011, 1.

-8 који одговара 1000 мора се адресирати одвојено. Први бит за све ове бројеве означава знак 0 за позитивне бројеве и 1 за негативне бројеве. Дешава се да 1000 није међу ових четрнаест бинарних бројева. 1000 почиње са 1 што значи да мора бити негативан број, што се тиче комплемента два. Дакле, 1000 је укључено у опсег, што значи -8.

Са четири бита у комплементу два, број свих целих бројева (позитивних и негативних) који се могу представити је 2 4 = 16 а не 2 4 – 1 = 15. Нијанса је резултат укључивања последњег негативног броја који је минус од 2 нумберВидтх – 1. У овом случају, -2 4 -1 = -2 3 = -8. У опсегу бројева нема +8.

Претходна анализа за два, четири и шире бита у комплементу два може се применити на бинарне бројеве од 8 бита, 16 бита, 32 бита и 64 бита.

Комплемент двојке жртвује први (крајњи леви) бит за знак 0 за позитиван број и 1 за негативан број. За групу битова широке „н“ постоје 2 н укупни позитивни плус негативни бројеви. Било би 2 н -1, да није укључен последњи срећни (најмањи) негативни број. Највећи позитиван број је +2 н-1 -1, а најмањи негативни број је -2 н-1 -1. Било би -2 н-1 -1, да није било срећника -2 н-1 укључено.

Одузимање бројева у комплементу два
У одузимању:

А – Б = Д

А се назива минуенд, Б се назива субтрахенд, а Д се назива разлика.

Да бисте одузели један позитиван бинарни број од другог позитивног бинарног броја, минуенд се записује у комплементу два, а одузимање се претвара у његову негативну вредност комплемента два. Дакле, математички исказ постаје:

А+ – Б = Д

Другим речима, код одузимања комплемента два, одузетак се претвара у негативан број, а затим се додаје минуенду.

Пример 3.31:
Процените следећи децимални израз у комплементу два користећи четири бита:

6 – 4

Решење:
Бинарни број за 6 је 110. У 4-битном комплементу два, то је 0110. Бинарни број за +4 је 100. У 4-битном комплементу двојке, то је 0100. 0100 који се мора конвертовати у минус 4 у два комплемент на следећи начин: Комплемент или инверзија од 0100 је 1011. Додавање 1 овоме са десног краја, као што смо урадили додатно, даје 1100. Дакле, децимални израз је:

6 – 4 који постаје:

0110 – 0100 што је

0110 +(– 0100) = 0110 + 1100 урађено као у претходном одељку сабирања као:

Напомена: 0110 +(– 0100) је исто што и 6 + – 4

Са одузимањем комплемента два, сваки пренос, после последње колоне лево, у сабирању, се одбацује. Приликом одузимања у децимали, математички исказ је:

6 – 4 = 2

Урадите исту ствар у комплементу два, одговор је 0010 што је +2 у бинарном бројању комплемента два. Претходно одузимање одузима мањи број од већег. У следећем примеру, већи број се одузима од мањег броја. Табела 3.32 се може консултовати да би се видело да ли је 0010 заиста комплементар два, што је еквивалентно за +2.

Пример 3.32:
Процените следећи децимални израз у комплементу два са четири бита:

4 – 6

Решење:
Бинарни број за 4 је 100. У 4-битном комплементу двојке је 0100. Бинарни број за +6 је 110. У 4-битном комплементу двојке је 0110. 0110 се мора конвертовати у минус 6 у комплементу двојке како следи: Комплемент или инверзија броја 0110 је 1001. Додавање 1 овоме са десног краја, као што смо урадили у претходном сабирању, даје 1010. Дакле, децимални израз је:

4 – 6 који постаје:

0100 – 0110 што је

0100 +(– 0110) = 0100 + 1010 урађено као у претходном одељку сабирања као:

Напомена: 4+ – 6 је исто што и 0100 +(– 0110).

Са одузимањем комплемента два, сваки пренос, после последње колоне лево, у сабирању, се одбацује. Приликом одузимања у децимали, математички исказ је:

4 – 6 = -2

Урадите исту ствар у комплементу два, одговор је 1110 што је -2 у бинарном бројању комплемента два. Може се консултовати табела 3.32 да би се видело да ли је 1110 заиста комплементар два, што је еквивалентно за -2.

3.4 Множење бинарних бројева

У саопштењу:

А к Б = П

А се назива множитељ, Б се назива множилац, а П се назива производ. Израз А к Б значи сабирање А, Б више пута када су А и Б цели бројеви (цели бројеви).

Множење у бинарном систему је исто што и множење у децималном. Међутим, уместо да се то ради у децималном облику, то се ради у бинарном облику. Множење децималног израза од 42 к 10 се врши у бинарном облику на следећи начин где је 42 10 = 101010 2 и 10 10 = 1010 2 :

4 броја која се додају називају се делимични производи. Одговор је производ. Додавање делимичних производа се врши на исти начин као што је претходно објашњено.

Множење се такође може видети на следећи начин: У овом множењу са два основна два, ако је бит (цифра) у множиоцу 1, најмањи битни бит његовог парцијалног производа је најмањи битни бит множења који се поново уписује директно испод њега; а остали битови множеника се понављају улево. У овом множењу са два основа, ако је бит (цифра) у множитељу 0, његов делимични производ се састоји од 0 са најмањим битом од 0 директно испод њега. Број свих нула је број битова у множењу.

3.5 Подела бинарних бројева

У саопштењу:

А ÷ Б = К

А се назива дивиденда, Б се назива делилац, а П се назива количник. Количник може бити праћен остатком. Израз А ÷ Б значи колико пута се Б може додати да би се добило А или било близу њега тако да је остатак 0 или мањи од Б.

Подела се може извршити на много начина. Подела која је овде приказана је подела за рестаурацију.

Ресторинг Дивисион
Ово је метода дуге поделе која се учи у школама. Ако се 237 подели са 6, одговор је 39 остатак 3. 237 10 у бази 2 је 11101101 2 и 6 10 у бази 2 је 110 2 . 39 10 у бази 2 је 100111 2 и 3 10 у бази 2 је 11 2 .

Дакле, 11101101 2 подељено са 110 2 даје 100111 2 остатак 11 2 у бази два. Са методом рестаурације, бинарни бројеви су обични бројеви и нису нужно у комплементу два. Следећа структура дели 11101101 2 до 110 2 дати 100111 2 остатак 11 2 :

Одузимање се врши обично, а не коришћењем комплемента два. Пошто је ово основа два, позајмица је два, а не десет. Делимичне дивиденде су 10, 101, 1011, 1010 и 1001. 11 је остатак. Пошто делилац има три цифре, дељење се врши у основи у групе од по три цифре од дате дивиденде. Количник је цео број (цео број), а за овај задатак је 100111. Резултат количника и остатка је очекиван.

3.6 Аритметичке операције са софтвером и хардвером

Матична плоча рачунара има сат. Откуцаји сата се називају пулсеви. При сваком импулсу такта, једна или више одлука се доносе на различитим местима на матичној плочи; а то је у вези са програмирањем (софтвером).

Унутар микропроцесора постоје две врсте кола: комбинована логичка кола и секвенцијална логичка кола. Постоји још једна врста кола која се зове мултиплексер. Сабирање, множење и дељење се могу одвијати унутар једног тактног интервала користећи комбинациону логику (коло). Док програмирање (софтвер) доноси одлуку при сваком импулсу такта користећи секвенцијална логичка кола и мултиплексоре.

Када се одузимање врши помоћу комплемента два, неопходна су најмање два такта. На првом импулсу такта, мултиплексер каналише одузимање у скуп НЕ капија (један НЕ капија по цифри). Код другог тактног импулса, комбинациона логика додаје 1 излазу НОТ капије и наставља да додаје резултујуће одузимање и минуенд. Све то додавање се може одвијати унутар једног интервала сата.

Сабирање, множење и дељење још увек могу да се смање са програмирањем помоћу табела истинитости. Међутим, то није покривено у овом онлајн курсу за каријеру.

3.7 Логичке операције у микропроцесору

АНД, ОР, КСОР и Инверт

И
Следећа табела илуструје Битвисе АНД. То значи да су за два различита бинарна броја, одговарајући битови АНД на основу АНД табеле истине:

Кретање с лева на десно, 1 И 1 = 1; 0 И 1 = 0; 0 И 0 = 0; 1 И 0 = 0; и тако даље у складу са АНД Табелом истине.

ИЛИ
Следећа табела илуструје Битвисе ОР. То значи да су за два различита бинарна броја, одговарајући битови ОР распоређени на основу табеле ИЛИ истине:

Кретање с лева на десно, 1 ИЛИ 1 = 1; 0 ИЛИ 1 = 1; 0 ИЛИ 0 = 0; 1 ИЛИ 0 = 1; и тако даље у складу са ОР Табелом истине.

БЕСПЛАТНО
Следећа табела илуструје Битово ексклузивно ИЛИ. То значи да се за два различита бинарна броја, одговарајући битови КСОР-а на основу КСОР-табеле истине:

Кретање с лева на десно, 1 КСОР 1 = 0; 0 КСОР 1 = 1; 0 КСОР 0 = 0; 1 КСОР 0 = 1; и тако даље у складу са КСОР табелом истине.

Обрни (НЕ)
Следећа табела илуструје Битвисе НЕ (инверт). То значи да се за један бинарни број, овај пут, сваки бит инвертује на основу табеле НОТ истине:

Кретање с лева на десно, НЕ 1 = 0; НИЈЕ 0 = 1; НИЈЕ 0 = 1; НИЈЕ 1 = 0; и тако даље у складу са табелом НЕ Истина.

Померање десно или лево

Схифт Ригхт
Следећи бинарни број се помера за 3 позиције бита удесно, са нулама убаченим у празне позиције бита са леве стране:

Померање се може извршити за једно, два, три, четири, итд.

Схифт Лефт
Следећи бинарни број се помера за 3 позиције бита улево, са нулама убаченим у празне позиције бита на десној страни:

Померање се може извршити за једно, два, три, четири, итд.

Ротирање десно или лево

Ротирање је слично померању. Ради се мало по мало. Приликом ротирања удесно, битови који напуштају десни крај не отпадају као код померања; замењују испражњене делове са леве стране, један по један. Приликом ротирања улево, битови који напуштају леви крај не отпадају као код померања; замењују испражњене делове са десне стране, један по један.

Ротирајте десно
Следећи бинарни број је ротиран за 3 битне позиције удесно:

Ротирање се може вршити за једно, два, три, четири, итд. места.

Рорате лево
Следећи бинарни број је ротиран за 3 битне позиције улево:

Ротирање се може вршити за једно, два, три, четири, итд. места.

3.8 АСЦИИ скуп знакова и његове вредности кода

АСЦИИ је скраћеница за „Амерички (САД) стандардни код за размену информација“. Замислите тастатуру са 96 тастера. Ово је идеална тастатура где се тастери за велика слова разликују од тастера за мала слова. Сваки други тастер представља знак који се налази на енглеској (САД) тастатури. Знакови и кодови (одговарајући бројеви за знакове) су наведени у следећем:

У овој табели прва 32 знака (укључујући знак са 00 16 = 0 10 код) су знакови који се не штампају. Они су контролни ликови. Не виде се на екрану (монитору) где је све равноправно. Имају само ефекте. Хајде да разговарамо више о томе касније.

Остали знакови су штампани знакови; виде се на екрану. Има 128 АСЦИИ знакова. 2 7 = 128.1111111 2 = 127 10 . 7 у 2 7 значи 7 бита.

Сада, 1111111 2 + 1 2 исто је као:

Ево, 10.000.000 2 = 128 10 . Има их 128 10 знакова у претходној листи (табела) АСЦИИ знакова. Ово укључује нулти карактер, чији је код у основи шеснаест (хексадецимални) 00, што је еквивалентно 0 у бази десет.

Пошто има укупно 128 знакова, 128 минус 32 нештампана знака даје 96 штампаних знакова. У овом одељку се претпоставља да постоји идеална тастатура са 96 карактера који су знакови за штампање. На овој идеалној тастатури, тастери за велика енглеска слова се разликују од тастера малих енглеских знакова.

Сваки знак на тастатури је представљен са два основна броја од 7 бита који нису приказани на листи. Велико слово „Н“, на пример, представљено је са седам битова 1001110 у бази 2. Да бисте претворили 1001110 2 на основу 16, претходи јој 0 и групиши резултат у четворобитне подгрупе на следећи начин:

| 0100 | 1110 | 2 = | 4 | Е | 16

То је 01001110 2 = 4Е 16 . За претварање 4Е 16 на основу десет, урадите следеће:

4 к (16) 1 + Е к (16) 0 = 4 к 16 + Е к 1 = 4 к 16 + 14 к 1 = 64 + 14 = 78 10

Десно од „Н” у листи (табела) је хексадецимални број 4Е и децимални број 78.

Као други пример, знак „[“ је представљен са седам битова 1011011 у бази 2. Да бисте конвертовали 1011011 2 на основу 16, претходи јој 0 и групиши резултат у четворобитне подгрупе на следећи начин:

| 0101 | 1011 | 2 = | 5 | Б | 16

То је 01011011 2 = 5Б 16 . Да бисте претворили 5Б16 у базу десет, урадите следеће:

5 к (16) 1 + Б к (16) 0 = 5 к 16 + Б к 1 = 5 к 16 + 11 к 1 = 80 + 11 = 91 10

Десно од „[“ у листи (табела) је хексадецимални број 5Б и децимални број 91.

Као још један пример, знак за децимални број „5“ је представљен са седам битова 0110101 у бази 2, и не 0000101 у бази 2. За конверзију 0110101 2 на основу 16, претходи јој 0 и групиши резултат у четворобитне подгрупе на следећи начин:

| 0011 | 0101 | 2 = | 5 | Б | 16

То је 00110101 2 = 35 16 . Да бисте претворили 3516 у базу десет, урадите следеће:

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

Десно од „5” у листи (табела) је хексадецимални број 35 и децимални број 53.

Пошто рачунар ради у бајтовима, када се притисне тастер на идеалној тастатури, осам битова се шаље микропроцесору (матичној плочи). Идеална тастатура је периферија која је одвојена од системске (базне) јединице рачунара. Има електронско коло (ИЦ) које ствара седам битова и испред њих ставља нулу пре него што их пошаље преко кабла на матичну плочу системске јединице. Са улазног порта (улазног кола) матичне плоче иде до микропроцесора који се такође налази на матичној плочи. Од микропроцесора иде у меморију која је такође уграђена на матичну плочу.

Дакле, када се притисне тастер „Н” на идеалној тастатури, осам битова 01001110 се одводе у микропроцесор. Из микропроцесора се преносе у меморију где остају на меморијској локацији као бајт. Рачунарски програмер треба да има на уму да осам битова 01001110 2 је исто што и 4Е 16 што је исто као 78 10 .

Када се притисне тастер „[““ на идеалној тастатури, осам битова 01011011 се преноси у микропроцесор. Из микропроцесора се преносе у меморију где остају на меморијској локацији као бајт. Рачунарски програмер треба да има на уму да осам битова 01011011 2 је исто што и 5Б 16 што је исто као 91 10 .

Када се притисне тастер „5“ на идеалној тастатури, као знак, а не као децимални број, осам битова 00110101 се преноси у микропроцесор. Из микропроцесора се преносе у меморију где остају на меморијској локацији као бајт. Рачунарски програмер треба да има на уму да осам битова 00110101 2 је исто као 35 16 што је исто као 5310 10 .

Постоје случајеви када је програм покренут и чека да се децимални број од 5 унесе у рачунар. У овој ситуацији, ако се притисне тастер „5“ на идеалној тастатури, осмобитни код 00110101 се и даље преноси у микропроцесор. Пошто је потребан децимални број од 5, а не знак „5“, део кода (кратки програм) из меморије користи микропроцесор да конвертује код карактера 00110101 у основи два у број комплемента два 00000101 2 пре него што га пошаље на меморијску локацију као бајт комплемента са два. Рачунарски програмер мора имати на уму да 00000101 значи 5 10 у бази 2, а разликује се од кодних бројева 00110101 2 , 35 16 , и 53 10 што значи карактер „5“. Да би се у меморији приказао број комплемента два од 00000101, други кратки програм мора да конвертује 00000101 из меморије у 00110101. То је 00110101 што је исто као 35 16 што је исто као 53 10 који се приказује на монитору (или штампач штампа на папиру).

3.9 Формат броја са помичним зарезом

Број без децималног дела је цео број. Број 36 је цео број. 36.375 није цео број. То је децимални број са децималним делом. Децимални део .375 је разломак који је мањи од 1.

36.375 се тумачи у децималном облику као:

Сада:

Дакле, 100100 2 = 3610 што је цео бројни део 36.375 10 .

Сада:

Дакле, 0,011 2 = 0,375 10 што је децимални број од 36.375 10 .

∴ 36,375 10 = 100100.011 2

Другим речима:

100100.011 2 = 36,375 10

Бројеви су у рачунару представљени у бази 2, а не у бази 10, при чему је све једнако. Пошто ћелија у регистру у микропроцесору или ћелија у меморији могу узети само 1 или 0, нема места за чување децималног зареза. Ово представља проблем. Као резолуција, постоји ИЕЕЕ-754 једнострука прецизна 32-битна репрезентација са помичним зарезом и ИЕЕЕ-754 двострука прецизна 64-битна репрезентација са покретним зарезом.

32-битни формат броја са помичним зарезом
Број 100100.0112 се може изразити као:

100100.011 2 = 1,00100011 2 к 2 +5

Десна страна симбола = се у математици назива основним два стандардна форма леве стране 100100.011 2 .

Сада, 00100011 од 1,00100011 2 на десној страни симбола =, без претходног „1“. и без 2 за основу, назива се експлицитни сигнификанд. У овом случају, бинарна тачка се узима пет места лево да би се добила „1“. Немојте бркати децимални зарез и бинарни зарез. Бинарна тачка је за базу 2, док је децимална тачка за базу 10. „1.“ праћено 00100011 на десној страни симбола =, без 2 за основу, формира прави сигнификанд. Међутим, 1,00100011 се зове имплицитни сигнификанд.

После знака на десној страни је „к 2 +5 ” израз. Са овим изразом, +5 се назива експонент. Знак плус значи да бинарна тачка мора да се помери за пет места унапред да би била у свом нормалном првобитном положају, а 2 је основа за нумерисање. Претходна једначина се може написати обрнуто као:

1.00100011 2 к 2 +5 = 100100.011 2

Са 32-битном представом са помичним зарезом, то је „1.00100011 2 к 2 +5 ” који се користи а не само „100100.011 2 ”. 2 за базу се не бележи. 32-битни приказ са помичним зарезом за „1.00100011 2 к 2 +5 ” број, који је једнак 36,375 10 = 100100.011 2 , приказан је у следећој табели:

Постоје 32-битне позиције које су нумерисане са десног краја, почевши од 0. Први бит на левом крају је бит знака. Ако је број позитиван, овај бит је 0. Ако је број негативан, овај бит је 1 (-1 се састоји од два знака и не може се ставити ни у једну ћелију). Тхе 1.00100011 2 к 2 +5 што је једнако 36.375 10 што је такође једнако 100100.011 2 је позитиван број. Дакле, први бит је 0.

Постоји осам позиција битова за експонент, почевши од позиције 30 до позиције 23, укључујући. Међутим, експонент који је тамо написан је 10000100 2 што је једнако 132 10 . Експонент броја од интереса је заправо +5 од основе два. Па, шта се дешава?

Сада, у 32-битном формату, експонент 0 је написан као 01111111 2 што је једнако 127 10 . Тхе +5 10 је +101 2 . Дакле, доласком до 10000100 2 у експонентном делу у табели, 101 2 је додато у 01111111 2 , сходно томе. То значи да је 5 додато на 127 да бисмо добили 132 10 .

Значајка, без „1.“, заузима позиције од 22 до 15, укључујући. Имајте на уму да 1 од „1.“ није назначено у 32-битном низу. Никада није назначено – прихватите то. Остале ћелије до позиције 0 су испуњене нулама.

Ако је стварни експонент -5, онда се 5 одузима од 127 10 имати 122 10 . Ово одговара одузимању 101 2 од 01111111 2 да има 01111010 2 .

Уз сву претходну илустрацију, број +1 који је једнак 1,0 к 2 0 = 1,0 к 1 = 1,0 је представљен као:

Имајте на уму да „1.“ од 1,0 к 2 0 није назначено у формату. Никада није назначено. Следећи мешовити разломак који иде позитивно после 1.0 је:

Обратите пажњу на 1 на десном крају. Овај приказ је број:

Разлика између 1.0000001192092896 и 1.0 је:

1,0000001192092896 – 1,0 = 0,0000001192092896

Бројеви са децималним деловима су мешовити разломци. Нису сви разломци између 1 10 и 2 10 може бити представљен у рачунару. Може се претпоставити да је најмањи разломак између узастопних мешовитих бројева са 32-битним форматом са помичним зарезом 0,0000001192092896. Очекујте да ће интервал за двоструку прецизност бити мањи. Погледајте следећу илустрацију.

Представљајући број, 0.0 не прати претходне аргументе. Репрезентација за 0.0 је декларисана и као таква се мора научити. За представљање 0,0, све ћелије за сигнифицанд су 0 и све ћелије за експонент су такође нула. Бит предзнака може бити 0 или 1. Нажалост, ово доводи до позитивних 0 и негативних 0 на следећи начин:

У стварном животу постоји само једна нула. Позитивна 0 и негативна 0 не постоје. Међутим, 0 се обично сматра позитивним. Позитивна 0 и негативна 0 постоје овде због овог специфичног описа формата. Бројевна права (види горе) такође може имати +0 и -0, али постоји само једна нула.

64-битни формат броја са помичним зарезом
64-битни формат са покретним зарезом је сличан 32-битном формату, али са следећим разликама:

  • Постоје 64 бита за представљање броја.
  • После предзнака, постоји 11 битова за број експонента.
  • Број експонента за нулти индекс (2 0 ) је 1023 10 = 01111111111 2 .
  • Након једанаест битова следе 52 бита за експлицитни сигнификанд.
  • Има шири опсег бројева од 32-битног формата.

Имајте на уму да „1.“ који се налази на почетку значења још увек није укључен међу 64 бита, као што није укључен међу 32 бита за 32-битни формат.

Једна од најважнијих разлика између 64-битног формата и 32-битног формата је та што је разлика између узастопних мешовитих разломака у 64-битном формату мања од оне у 32-битном формату.

У 64-битном формату, интервал (размак) између 1,0 и следећег мешовитог разломка може се израчунати на следећи начин:

1.0 је

0 01111111111 0000000000000000000 00000000000 00000000000000000000 2

Ово је еквивалентно „1.“, који није назначен у низу, помноженом са 2 подигнутим на степен (индекс) 0 (са експонентом 1023 10 = 01111111111 2 за 2 0 = 1). Низ је 1,0 к 2 0 .

Следећи мешани разломак већи од 1,0 је:

0 01111111111 0000000000000000000 00000000000 000000000000000000001 2

Ово је еквивалентно „1“. што није назначено у низу, затим 51 нула, а затим 1, помножено са 2 подигнуто на степен 0 (са експонентом 1023 10 = 011111111112 2 за 2 0 = 1). Ово је исто као:

+2 0 × (1 + 2− -52 ) ≈ 1.00000000000000002

≈ значи приближно једнако.

Сада:

1,0000000000000002 – 1,0 ≈ 0,0000000000000002

Одговарајућа вредност интервала за 32-битни формат је 0,0000001192092896 ≈ 0,00000012.

0,0000000000000002 је много мање од 0,00000012. Дакле, постоји много више мешовитих разломака између два узастопна цела броја (нпр. 3 и 4) у 64-битном формату него између два узастопна цела броја за 32-битни формат.

Број мешовитих разломака између два узастопна цела броја на бројевној правој је бесконачан. Дакле, ниједан формат (нпр. 32-битни или 64-битни) не може да обезбеди све мешовите разломке између било која два узастопна цела броја (цела броја). Што је мањи размак (интервал) између два узастопна цела броја обезбеђена форматом (нпр. 32-битни или 64-битни), већи је број мешовитих разломака између узастопних целих бројева (за бројевну праву).

Разлози због којих се 64-битни формат описује као двострука или већа прецизност, у поређењу са 32-битним форматом, је тај што је интервал између два узастопна мешовита разломка ограничена са два узастопна цела броја за 64-битни формат мањи од одговарајућих 32 -бит формат интервал. Такође, постоји више могућих мешовитих разломака између два ограничена цела броја за 64-битни формат него што је то за 32-битни формат.

Претварање децималног дела (разломка) децималног броја у бинарни део
36.375 је децимални број са децималним делом „.375“. Децимални део „.375“ је разломак између нуле и један. 0,5 у основи десет је иста вредност као 1/2 у основи два. Тхе 0.5 10 која је изражена експанзијом са два основа је:

Није 0,101 2 што значи 0,625 10 . Децимални део децималног броја има свој еквивалентни бинарни део за одговарајући бинарни број. Дакле, да бисте претворили децимални број као што је 36.375 10 у базу два, претворити 36 у бинарни, а затим претворити .375 такође у бинарни. Затим спојите оба резултата са бинарном тачком. Методе за претварање ова два одељка су различите. Како претворити децимални цео број у базу 2 објашњено је у поглављу 1.

Да бисте децимални разломак претворили у бинарни разломак, следите следеће кораке:

  • Помножите децимални разломак (децимални део) са 2. Цео број који је резултат овога је прва бинарна цифра.
  • Поновите претходни корак са разломком децималног резултата да бисте добили следећу бинарну цифру.
  • Понављајте претходни корак све док резултат децималног разломка не буде .0000—.

Пример: Претворите разломак од 36,375 10 на еквивалентни разломак у основи два.

Решење:

Имајте на уму да је у трећем кораку .500 помножено са 2, а не са 1.500. Бинарни одговарајући разломак се чита у последњој колони одозго. И тако, следећи резултат је:

.375 10 = .011 2

Претварање бинарног дела (разломка) бинарног броја у децимални део
Да бисте то постигли, проширите бинарни разломак у реципрочне степене 2.

Пример: Претворите разломак од 100100,011 2 на еквивалентни разломак у основи десет.

Решење:

3.10 Бројеви префикси у рачунарству

У нормалном животу, 1 килограм значи 1000, што је скраћено у к (малим словима) као у 1 кг. У рачунарству, 1 килограм значи 2 10 = 1024, али је скраћено у К (велика слова) као у 1Кбита. У нормалном животу, 1 мега значи 1.000.000 што је скраћено М (велика слова) као 1Мг. У рачунарству, 1 мега значи 2 двадесет = 1,048,576 = 2 10 к 2 10 = 1024 к 1024 = 1,048,576 и даље је скраћено у М (велика слова) као у 1Мбитс. У нормалном животу, 1 гига значи да је 1.000.000.000 скраћено у Г (велика слова) као у 1Гг. У рачунарству, 1 гига значи 2 30 = 1,073,741,824 = 2 10 к 2 10 к 2 10 = 1024 к 1024 к 1024 = 1,073,741,824 и и даље је скраћено у Г (велика слова) као у 1Гбитс. Следећа табела даје значење четири префикса у нормалном животу и рачунарству:

3.11 Проблеми

Читаоцу се саветује да реши све проблеме у једном поглављу пре него што пређе на следеће поглавље.

  1. Нацртај бројевну праву са целим бројевима од -10 до +10.
  2. Додајте следеће бинарне бројеве у 8-битну два комплемента: 101010 2 и 1111 2 .
  3. Користите само приступ комплемента два у 8-биту да бисте одузели бинарни број 1111 2 од бинарног броја 101010 2 .
  4. Пронађите производ 10110 2 к 1101 2 у бази два.
  5. Подели 36,375 10 до 1000 10 децимално и бинарно и упореди резултате.
  6. Користите 8 бита по свом избору да илуструјете логичко И, ИЛИ, КСОР, Инверт, Схифт десно, Схифт Лефт, Ротате Ригхт и Ротате Лефт. Сваки бајт треба да има мешавину 1 и 0.
  7. а) Напишите нумерички код за АСЦИИ знак нула у хексадецималном, бинарном и децималном облику.
    б) Напишите нумерички код за АСЦИИ знак „1“ у хексадецималном, бинарном и децималном облику.
    ц) Напишите нумерички код за АСЦИИ знак од „А“ у хексадецималном, бинарном и децималном облику.
    д) Напишите нумерички код за АСЦИИ карактер од „а“ у хексадецималном, бинарном и децималном облику.
  8. Претвори 49,49 10 у базу два. Конвертујте свој резултат у ИЕЕЕ 32-битни формат са покретним зарезом.
  9. а) Како се ИЕЕЕ 64-битни формат са покретним зарезом разликује од 32-битног формата?
    б) Наведите два повезана разлога зашто је 64-битни формат описан као двострука или већа прецизност у односу на
    32-битни формат.