Binarni brojevni sustav




Download 104,5 Kb.
bet1/8
Sana04.04.2017
Hajmi104,5 Kb.
#3023
  1   2   3   4   5   6   7   8

PROGRAMIRANJE 1.AUDITORNE VJEŽBE 4.4.2017


1. Auditorne vježbe
BINARNI BROJEVNI SUSTAV
Brojevni sustav s bazom brojanja B ima znamenke 0, 1, 2, ... , B 1

Npr. u dekadskom sustavu B=10, a znamenke su 0, 1, 2, ..., 8 i 9.


Ako je baza B=2 dobiva se binarni brojevni sustav, čije znamenke su 0 i 1.

Iz engleskog BInary digiT nastalo je ime za najmanju količinu informacije BIT.


Primjer zapisivanja brojeva:

5710 = 5 * 101 + 7 * 100 = 1*25 + 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = 1 1 1 0 0 1 2

Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima, a broj bita za prikaz brojeva je iz tehničkih razloga ograničen .


Uređaji koji obrađuju i pohranjuju binarne informacije fizički se izvode pomoću elektroničkih elementa s 2 stabilna stanja (bistabil), koji su vrlo brzi i jeftini.
Pretvorba dekadskog broja u binarni
Binarni broj tvore ostaci dijeljenja s 2, odozdo prema gore
57 : 2 = 28 1 1 1 0 0 1

1

28 : 2 = 14



0

14 : 2 = 7



0

7 : 2 = 3



1

3 : 2 = 1



1

1 : 2 = 0



1

NEGATIVNI BINARNI BROJEVI
Registar je skup memorijskih elemenata koji pamte znamenke binarnog broja što znači da je za određeno računalo unaprijed propisana dužina registra, a time i brojevno područje unutar kojeg se kreću brojevi.
Primjer: Operacija 7   5 u računalu s registrom od 4 bita obavit će se kao

7 + ( 5). Binarni prikaz broja  5 je sljedeći:


Pozitivni broj 0 1 0 1
Komplement do baze 1 1 1 1 1 Komplement do baze 1 0 1 0

(jedinični komplement)   0 1 0 1 (dvojni komplement) + 0 0 0 1





1 0 1 0 1 0 1 1
Dokaz da je dobiveni broj   5 Operacija oduzimanja 7   5

1 0 1 1 (  5) 0 1 1 1 ( 7)

+ 0 1 0 1 (+5) + 1 0 1 1 (-5)






0 0 0 0 0 0 1 0
Preljev 1 Preljev 1
U registru s 3 bita, ako je prvi bit predznak mogu se prikazati sljedeći brojevi:
Dekadski broj Binarni broj

0 000


1 001

2 010


3 011

 4 100


 3 101

 2 110


 1 111
Za n = 3 dobije se interval [ 22, 22   1],

Za n = 8 taj je interval [ 27, 27- 1 ], tj. [ 128, 127].

Općenito: [ 2n 1, 2n 1   1].

Dodavanjem jedinice najvećem prikazivom cijelom broju, dobit će se najmanji prikazivi cijeli broj (npr. za n=8 , 127 + 1  -128) , odnosno oduzimanjem jedinice od najmanjeg prikazivog cijelog broja dobit će se najveći prikazivi broj (npr. za n=8 , -128 – 1  127)



OKTALNI BROJEVNI SUSTAV
Baza sustava je B=8 a znamenke su 0, 1, 2, 3, 4, 5, 6, 7.

Koristi se za skraćeno zapisivanje binarnih sadržaja kada je to spretno.


Primjer:
36 bitni broj 001 110 000 101 111 001 010 011 111 000 100 001

oktalni ekviv. 1 6 0 5 7 1 2 3 7 0 4 1



HEKSADEKADSKI BROJEVNI SUSTAV
Baza sustava je B = 16, a znamenke su 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Koristi se za skraćeno zapisivanje binarnog sadržaja.



Primjer:
16 bitni broj 0111 1011 0011 1110

heksadekadski ekviv. 7 B 3 E


RAZLOMLJENI BINARNI BROJEVI
Razlomljeni binarni brojevi sadrže "binarnu točku", analogno decimalnom zarezu, odnosno točki u anglo američkoj notaciji.
Primjer: prikaz razlomljenih brojeva
5.75 10 = 5 * 100 + 7 * 10 1 + 5 * 10 2 =
= 1*22 + 0*21 + 1*20 + 1*2 1 + 1*2 2 = 1 0 1 . 1 1 2
Pretvaranje decimalnog broja u binarni
Cjelobrojni dio dekadskog broja pretvara se u binarni uzastopnim dijeljenjem, a decimalni uzastopnim množenjem s 2, gdje cjelobrojni dio dobivenih produkata tvori znamenke binarnog razlomka.
1.25 = 1 + .25


.25 * 2 1 . 0 1





0.50


.5 * 2




1.0




Primjer: pretvaranje decimalnih brojeva koji se ne mogu prikazati konačnim brojem binarnih frakcija
13.3 = 13 + 0.3

. .

.3 * 2 1 1 0 1 . 0 1 0 0 1 1 0 0 1 ...



0.6
.6 * 2

1.2


.2 * 2


0.4


.4 * 2


0.8


.8 * 2


1.6

.6 * 2


1.2

....


Treba uočiti da se konačni decimalni razlomak prikazuje kao beskonačni periodički binarni razlomak.
Binarni broj se množi s potencijama baze 2 tako da se binarna točka pomakne odgovarajući broj mjesta desno ili lijevo, zavisno da li je predznak potencije pozitivan ili negativan.
Primjer: 1 . 1 1 * 22 = 1 1 1
PRIKAZ REALNIH BROJEVA U RAČUNALU
Standardna točnost: 32 bita (4 byte)

Dvostruka točnost: 64 bita (8 byte)


Realni brojevi standardne točnosti
Deklaracija u programskom jeziku C: float
IEEE (Institute of Electrical and Electronics Engineers) standard 754 za prikaz realnih brojeva u standarnoj točnosti:
31 30 23 22 0

P Karakteristika Mantisa





P

predznak ( P=1 negativan, P=0 pozitivan)

Karakteristika

binarni eksponent + 127 (da se izbjegne prikaz negativnog eksponenta)

Mantisa

normalizirana (samo jedan bit ispred binarne točke).


Primjer: prikazati dekadski broj 5.75
5.7510 = 101.112 * 20 = 1.01112 * 22
Kako se normalizacijom svakog binarnog broja (osim nule) postiže oblik 1.xxxxx, vodeća jedinica ne pohranjuje se u računalu i naziva se skrivenim bitom.
Time se štedi jedan bit što povećava točnost.
Predznak = 0 (pozitivan broj)

Binarni eksponent = 2 K = 2 + 127 = 129 = (1000 0001)2

Mantisa (cijela) 1.0111

Mantisa (bez skrivenog bita) 0111
Rezultat: 0 10000001 01110000000000000000000

ili 0100 0000 1011 1000 0000 0000 0000 0000



4 0 B 8 0 0 0 0 (heksadekadski)

Primjeri:
2 = 102 * 20 = 12 * 21 = 0100 0000 0000 0000 ... 0000 0000 = 4000 0000 hex

P = 0, K = 1 + 127 = 128 (10000000), M = (1.) 000 0000 ... 0000 0000


-2 = -102 * 20 = -12 * 21 = 1100 0000 0000 0000 ... 0000 0000 = C000 0000 hex

Jednako kao 2, ali P = 1


4 = 1002 * 20 = 12 * 22 = 0100 0000 1000 0000 ... 0000 0000 = 4080 0000 hex

Jednaka mantisa, BE = 2, K = 2 + 127 = 129 (10000001)


6 = 1102 * 20 = 1.12 * 22 = 0100 0000 1100 0000 ... 0000 0000 = 40C0 0000 hex
1 = 12 * 20 = 0011 1111 1000 0000 ... 0000 0000 = 3F80 0000 hex

K = 0 + 127 (01111111).


.75 = 0.112 * 20 = 1.12 * 2-1 = 0011 1111 0100 0000 ... 0000 0000 = 3F40 0000 hex
Poseban slučaj - 0:
Normalizacijom broja 0 ne može se dobiti oblik 1.xxxxx
0 = 0 0000000 0000 ... tj. kao 1.02 * 2-127
Raspon i točnost realnih brojeva
Za slučaj realnog broja standardne točnosti karakteristika (8 bita) se može nalaziti u intervalu [0,255].
Specijalni slučajevi karakteristike su 0 i 255, pa obzirom da je BE = K - 127, BE se može kretati u intervalu [-126,127].
Kada je K = 0 i svi bitovi mantise nula radi se o broju nula.

Kada je K = 0 i postoje binarne frakcije u mantisi tada je to denormalizirani broj, tj. više ne postoji skriveni bit.

Kada je K = 255 i svi bitovi mantise nula radi se o prikazu +∞ illi -∞ ovisno od predznaka P

Kada je K = 255 i postoje binarne frakcije u mantisi ne radi se o prikazu broja (NaN)


Najmanji pozitivni broj ¹ 0 koji se može prikazati je:
0.000000000000000000000012 *2-126 što iznosi 1.401298464324817*10-45

a najveći je:


1.111111111111111111111112 * 2127  2128 = 3.402823669209*1038
Točnost: 24 binarne znamenke
224 10x  24 log 2  x log 10  x  24 log 2  7.224719895936

tj. približno 7 prvih važećih točnih znamenki.

Prikaz pomoću brojevnog pravca:




 3.4*1038  1.4*10-45 0 1.4*10-45 3.4*1038



Numeričke pogreške
Nemogućnost korištenja svih bita kod računanja

Primjer: 0.000110 + 0.990010

0.000110 : (1.)101000110110111000101112 * 2-14

0.990010 : (1.)111110101110000101000112 * 2-1
Kod zbrajanje, binarne točke moraju biti poravnate:

.000000000000011010001101 * 20 Samo 11 od 24 bita!

+.111111010111000010100011 * 20

.111111010111011100110000 * 20 = 0,990099906921410
Realni brojevi dvostruke točnosti
Deklaracija u programskom jeziku C: double
63 62 52 51 0

P Karakteristika (11 bita) Mantisa





P

predznak ( P=1 negativan, P=0 pozitivan)

Karakteristika

binarni eksponent + 1023 (11 bita)

Mantisa

normalizirana (52+1 bit).

Raspon:
K  [0,2047].

BE = K - 1023

BE  [-1022,1023]


Specijalni slučajevi: K=0 i K=2047
Kada je K = 0 i svi bitovi mantise nula radi se o broju nula

Kada je K = 0 i postoje binarne frakcije u mantisi tada je to denormalizirani broj, tj. više ne postoji skriveni bit

Kada je K = 2047 i svi bitovi mantise nula radi se o prikazu +∞ ili -∞ ovisno o predznaku P

Kada je K = 2047 i postoje binarne frakcije u mantisi tada se ne radi o prikazu broja (Nan)


Najmanji pozitivni broj različit od nule koji se može prikazati je:
0.0000 ...0012 * 2-1022 što je 4.9406 * 10-324
a najveći je:

1.1111.....1111112 * 21023 21024 = 1.797693134862316*10308


Točnost: 53 binarne znamenke
253 10x  53 log 2  x log 10  x  53 log 2  15.95458977019

tj. približno 16 prvih važećih točnih znamenki.

Postoji još i long double, međutim, njegova veličina ovisi o platformi, pa se tako mogu naći implementacije u kojima je njegova veličina 64,80,96 ili 128 bita. ANSI standard propisuje da nije manji od double broja. Primjer raspodjele ako je njegova veličina 80 bita:
long double 80 bita
Karakteristika: 15 bita

Binarni eksponent: Karakteristika – 16383



Realne konstante
1. 2.34 9e-8 8.345e+25 double

2f 2.34F -1.34e5f float



1.L 2.34L -2.5e-37L long double
Download 104,5 Kb.
  1   2   3   4   5   6   7   8




Download 104,5 Kb.