20.01.2014 Views

Digital aritmetik: Multiplikation och division. Talrepresentation

Digital aritmetik: Multiplikation och division. Talrepresentation

Digital aritmetik: Multiplikation och division. Talrepresentation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

F6 : <strong>Digital</strong> Aritmetik II<br />

<strong>Talrepresentation</strong>er<br />

• Ett tal kan representeras binärt på många sätt.<br />

• De vanligaste taltyperna som skall representeras<br />

är:<br />

– Heltal, positiva heltal (eng. integers)<br />

• ett-komplementet, två-komplementet, sign-magnitude<br />

– Decimala tal med fix tal-område<br />

• Fix-tal (eng. Fixed point)<br />

– Decimala tal i olika talområden<br />

• Flyt-tal (eng. Floating point)<br />

p. 2 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Heltal<br />

Positiva Heltal:<br />

-2 7<br />

0<br />

2 6 2 5 2 4 2 3 2 2 2 1 2 0<br />

1 1 0 1 1 0 1<br />

=1*2 6 + 1*2 5 + 1*2 3 + 1*2 2 + 1*2 0 = 109<br />

Negativa Heltal:<br />

2 6 2 5 2 4 2 3 2 2 2 1 2 0<br />

1<br />

1 1 0 1 1 0 1<br />

=-1*2 7 +1*2 6 + 1*2 5 + 1*2 3 + 1*2 2 + 1*2 0 = -19<br />

-2 7 p. 4 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

p. 3 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

<strong>Multiplikation</strong> av två (positiva) heltal<br />

0 0 1 0<br />

* 1 0 1 1<br />

0 0 1 0<br />

0 0 1 0<br />

0 0 0 0<br />

+ 0 0 1 0<br />

0 0 1 0 1 1 0<br />

2<br />

11<br />

22


<strong>Multiplikation</strong> med en teckenbit<br />

Teckenbiten har negativ vikt!<br />

=> Två-komplementera!<br />

0 0 1 0 2<br />

* 1 0 1 1 -5<br />

0 0 1 0<br />

0 0 1 0<br />

0 0 0 0<br />

+ 1 1 1 0<br />

1 1 1 0 1 1 0 -10<br />

p. 5 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Teckenbiten på det andra stället<br />

Teckenförläng!<br />

(Sign Extension)<br />

1 0 1 1 -5<br />

* 0 0 1 0 2<br />

0 0 0 0<br />

1 1 1 0 1 1<br />

0 0 0 0<br />

+ 0 0 0 0<br />

1 1 1 0 1 1 0 -10<br />

p. 6 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


<strong>Multiplikation</strong> av två negativa tal<br />

Teckenförläng!<br />

(Sign Extension)<br />

Teckenbiten har negativ vikt!<br />

=> Två-komplementera!<br />

1 0 1 1 -5<br />

* 1 0 1 1 -5<br />

1 1 1 1 0 1 1<br />

1 1 1 0 1 1<br />

0 0 0 0<br />

+ 0 1 0 1<br />

0 0 1 1 0 0 1 -25<br />

p. 7 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Lite mer detaljerat...<br />

1 0 1 1 -5<br />

* 1 0 1 1 -5<br />

1 1 1 1 0 1 1<br />

+ 1 1 1 0 1 1<br />

1 1 1 0 0 0 1<br />

0 0 0 0<br />

+ 0 1 0 1<br />

(1) 0 0 1 1 0 0 1 25<br />

p. 8 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Eller så gör vi det enkelt för oss...<br />

• Använd enbart positiva tal i multiplikationen<br />

– Konvertera till positiva tal<br />

– Håll reda på resultatets tecken<br />

(+,+)=>+; (+,-)=>-; (-,+)=>-; (-,-)=>+<br />

– Två-komplementera till negativt tal om nödvändigt<br />

p. 9 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

En enkel lösning (forts.)<br />

Sign A<br />

A N-1 A N-2 A 0<br />

0 1<br />

0 0 1<br />

Sign<br />

...<br />

B<br />

1 1 0<br />

HA HA ... HA<br />

F invert =S A xor S B<br />

2’s complement of A<br />

p. 10 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Multiplikatorn (två positiva tal)<br />

T MUL =~(3*N-4)*T FA<br />

0 a(3) a(3) a(2) a(2) a(1) a(1) a(0) a(0) 0<br />

b(0)<br />

b(1)<br />

FA FA FA<br />

a(3) a(2) a(1) a(0)<br />

FA<br />

FA<br />

b(2)<br />

FA FA FA<br />

a(3) a(2) a(1) a(0)<br />

FA<br />

b(3)<br />

FA<br />

FA<br />

FA<br />

FA<br />

q(7) q(6) q(5) q(4) q(3) q(2) q(1) q(0)<br />

p. 11 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

En snabbare lösning -<br />

Carry-Save Adders<br />

T MUL =~(2*N-2)*T FA<br />

0 a(3) a(3) a(2) a(2) a(1) a(1) a(0) a(0) 0<br />

b(0)<br />

b(1)<br />

FA FA FA<br />

a(3) a(2) a(1) a(0)<br />

HA<br />

b(2)<br />

FA FA FA<br />

a(3) a(2) a(1) a(0)<br />

FA<br />

b(3)<br />

FA<br />

FA<br />

FA<br />

FA<br />

q(7) q(6) q(5) q(4) q(3) q(2) q(1) q(0)<br />

p. 12 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


<strong>Multiplikation</strong> med 2<br />

0101*2=1010 (5*2=10)<br />

1010*2=10100 (-6*2=-12)<br />

01010101*2=010101010 (85*2=190)<br />

10010101*2 = 100101010 (-107*2=-214)<br />

jmfr multiplikation med 10 i basen 10:<br />

63*10 = 630, -63*10=-630 etc.<br />

p. 13 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

<strong>Multiplikation</strong> med 2 n<br />

0101*2=1010 (5*2=10)<br />

0101*2 2 =10100 (5*4=20)<br />

0101*2 3 =101000 (5*8=40)<br />

0101*2 4 =1010000 (5*16=80)<br />

jmfr multiplikation med 10 i basen 10:<br />

6*10 = 60, 6*100=600, 6*1000=6000 etc.<br />

p. 14 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Barrel-shiftern<br />

A 0<br />

A 1<br />

A 2<br />

A 3<br />

B 0<br />

0 0 0<br />

0 0 0<br />

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3<br />

B 1<br />

<strong>Multiplikation</strong> med (2 0 , 2 1 , 2 2 , 2 3 ) – dvs 1, 2, 4, 8<br />

p. 15 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Booth-encoding<br />

01111 15 = 16-1<br />

0 0 1 0<br />

* 1 1 1 1<br />

0 0 1 0<br />

0 0 1 0<br />

0 0 1 0<br />

+ 0 0 1 0<br />

0 0 1 1 1 1 0<br />

→ 2*15=2*(16-1)<br />

0010*16 = 0010*2 4 =100000<br />

0 1 0 0 0 0 0<br />

- 0 0 0 0 0 1 0<br />

0 1 0 0 0 0 0<br />

+ 1 1 1 1 1 1 0<br />

0 0 1 1 1 1 0<br />

p. 16 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Division mellan två (positiva) heltal<br />

(BV sid 693 – Fig 10.21 b)<br />

0 1 0 1<br />

1 0 1 0 1 1<br />

- 1 0<br />

0 0 1<br />

- 0 0<br />

0 1 1<br />

- 1 0<br />

1<br />

11/2 = 5<br />

Rest = 1<br />

p. 17 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Lite mer detaljerat...<br />

0 1 0 1<br />

1 0 0 1 0 1 1<br />

- 0 0<br />

1 0<br />

- 1 0<br />

0 0 1<br />

- 0 0<br />

0 1 1<br />

- 1 0<br />

1<br />

11/2 = 5<br />

Rest = 1<br />

p. 18 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Divideraren<br />

Täljare<br />

Från fg steg<br />

n-bit SUB<br />

Täljare<br />

Res < 0 ?<br />

Y/N<br />

1 0<br />

MUX<br />

Kvot i<br />

Till nästa steg<br />

p. 19 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Divideraren (forts.)<br />

0 b(1) a(3)<br />

b(0)<br />

1<br />

b(1)<br />

a(1)<br />

b(0)<br />

FA<br />

FA<br />

1<br />

q(1)<br />

FA<br />

FA<br />

FA<br />

1<br />

q(3)<br />

1 0<br />

b(1)<br />

FA<br />

a(2)<br />

b(0)<br />

1<br />

FA<br />

q(0)<br />

1 0<br />

1<br />

FA<br />

1 0<br />

FA<br />

1 0<br />

b(1)<br />

a(0)<br />

b(0)<br />

FA<br />

1 0<br />

1<br />

q(2)<br />

1 0 1 0<br />

r(1)<br />

r(0)<br />

p. 20 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Using a multiplier and a ROM for<br />

<strong>division</strong><br />

Q=A/B=A*(1/B)<br />

• Properties<br />

- Fast<br />

- VERY big!!<br />

ROM<br />

MUL<br />

p. 21 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Division med negativa heltal<br />

• Division med negativa tal är ganska knepigt.<br />

• Ett sätt att utföra <strong>division</strong>en ändå<br />

– Konvertera till positiva tal<br />

– Håll reda på resultatets tecken<br />

(+,+)-=>+, (+,-)=>-, (-,+)=>-, (-,-)=>+<br />

– Två-komplementera till negativt tal om nödvändigt<br />

p. 22 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Division med 2<br />

01010/2=00101 (10/2=5)<br />

10100/2=11010 (-12/2=-6)<br />

jmfr <strong>division</strong> med 10 i basen 10:<br />

630/10 = 63, -630/10=-63 etc.<br />

p. 23 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Logiskt vs Aritmetisk shift höger<br />

• Man skiljer mellan logisk <strong>och</strong> aritmetiskt shift<br />

– Logisk shift höger shiftar bara till höger. Bitarna skall ej<br />

tolkas som ett tal. Man fyller bara på med 0:or.<br />

– Aritmetisk shift höger behandlar bitarna som ett tal.<br />

Teckenbiten behålls vid shift. Man fyller på till vänster<br />

med teckenbiten.<br />

p. 24 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Division med 2 n<br />

1010/2=101 (10/2=5)<br />

10100/2 2 =101 (20/4=5)<br />

101000/2 3 =101 (40/8=5)<br />

1010000/2 4 =101 (80/16=5)<br />

jmfr <strong>division</strong> med 10 i basen 10:<br />

60/10 = 6, 600/100=6, 6000/1000=6 etc.<br />

p. 25 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Barrel-shiftern (2)<br />

A 0<br />

A 1<br />

A 2<br />

A 3<br />

A 4<br />

A 5<br />

A 6<br />

B 0<br />

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3<br />

B 1<br />

Division med (2 0 , 2 1 , 2 2 , 2 3 ) – dvs 1, 2, 4, 8<br />

p. 26 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Heltals-representation kan orsaka<br />

overflow<br />

• Addition:<br />

• Multiplication:<br />

(011) 2 + (010) 2 = (101) 2 (011) 2 * (010) 2 = (110) 2<br />

(3) 10 + (2) 10 = (-3) 10<br />

(3) 10 * (2) 10 = (-2) 10<br />

(011)<br />

• Subtraction:<br />

2 * (011) 2 = (001) 2<br />

(3)<br />

(110) 2 - (011) 2 = (011) 10 * (3) 10 = (1) 10<br />

2<br />

(-2) 10 - (3) 10 = (3) 10<br />

p. 27 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Fixed-Point Numbers<br />

Två-komplementsrepresentation<br />

B=b N-1 . b N-2 ...b 1 b 0<br />

where b i ∈{0,1}<br />

b N-1 b N-2 ... b 1 b 0<br />

Sign Bit<br />

Fixed-Point Value<br />

FiP(B)=-b N-1 2 0 +b N-2 2 -1 +...+b 1 2 -(N-2) +b 0 2 -(N-1)<br />

Detta format kallas också för Q N-1 -format eller<br />

fractional representation<br />

p. 28 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Fixed-Point<br />

Q2-Representation<br />

000<br />

111<br />

0<br />

001<br />

-0.25<br />

0.25<br />

110<br />

-0.5<br />

0.5<br />

010<br />

-0.75 0.75<br />

101 -1 011<br />

100<br />

p. 29 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

<strong>Multiplikation</strong> i Q-formatet<br />

• <strong>Multiplikation</strong> orsakar inte overflow i Q-formatet, men kan resultera i<br />

förlust av precision<br />

(1.10) 2 * (0.11) 2<br />

= (1.1010) 2 (Q4-format)<br />

= (1.10) 2 (Q2-format)<br />

Generellt:<br />

b 2 b 1 b 0<br />

Q2<br />

*<br />

b 2 b 1 b 0<br />

Q2<br />

Utökade teckenbitar<br />

b 5<br />

b 4 b 3 b 2 b 1 b 0<br />

Q4<br />

p. 30 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


<strong>Multiplikation</strong> i Q-formatet<br />

Sign Extension<br />

Discarded<br />

Negation<br />

Twos complement + 1<br />

0.11 * 1.10<br />

1.110<br />

1.1110<br />

11.1010<br />

1.10 * 0.11<br />

1.01<br />

0.011<br />

1.101<br />

Do not forget sign extension!<br />

p. 31 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Flyt-tal (eng. Floating-Point Numbers)<br />

• Ett flyt-tal representeras med en tecken-bit,<br />

exponent-bitar <strong>och</strong> en mantissa (ä.k. fraktions-bitar)<br />

S Exponent Mantissa<br />

Sign-Bit exp m<br />

• Värdet beräknas som<br />

FlP(B) = (-1) s * (1.m) * 2 ±exp<br />

• Ofta är exp biaserad (har en offset), vilket då ger<br />

FlP(B) = (-1) s * (1.m) * 2 exp-(bias)<br />

p. 32 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


IEEE-754<br />

• Flyttals-standarden IEEE-754 definierar ett 32-bit<br />

flyttal som<br />

S<br />

2 7 exp 2 0 2 -1 m 2 -23<br />

Exponent<br />

Mantissa<br />

32 31 exp 23 22 m 1<br />

• Värdet beräknas för en 8-bitars exponent enligt nedan<br />

FlP(B) = (-1) s * (1.m) * 2 exp-(127)<br />

• Specialla bit pattern har reserverats för att representera<br />

negativ <strong>och</strong> positiv nolla<br />

p. 33 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Floating-Point Numbers (IEEE)<br />

• Exponent Values 1 to 254: normalized non-zero floating-point<br />

numbers; biased exponent (-126...+127)<br />

• Exponent of zero and fraction of zero: positive or negative zero<br />

• Exponent of ones and fraction of zero: positive or negative<br />

infinity<br />

• Exponent of zero and fraction of non-zero: Denormalized<br />

number (true exponent is –126), represent numbers from<br />

0 to 2 -126<br />

FlP(B) = (-1) s * (0.m) * 2 -126<br />

• Exponent of ones with a non-zero fraction: NotANumber<br />

(Exception Condition)<br />

• There is also a standard for a 64-bit number<br />

p. 34 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Addition med flyttal<br />

• Givet två flyttal:<br />

a =<br />

a<br />

frac<br />

⋅ 2<br />

a<br />

exp<br />

exp<br />

b = b<br />

frac<br />

⋅ 2<br />

• Summan av dessa tal är:<br />

b<br />

c<br />

=<br />

a + b<br />

=<br />

⎪⎧<br />

( a<br />

⎨<br />

⎪⎩ ( b<br />

frac<br />

frac<br />

+ ( b<br />

+ ( a<br />

frac<br />

frac<br />

⋅ 2<br />

⋅ 2<br />

−(<br />

a<br />

−(<br />

b<br />

exp<br />

exp<br />

−b<br />

−a<br />

exp<br />

exp<br />

)<br />

)<br />

)) * 2<br />

)) * 2<br />

a<br />

b<br />

exp<br />

exp<br />

, if<br />

, if<br />

a<br />

b<br />

exp<br />

exp<br />

≥ b<br />

≥ a<br />

exp<br />

exp<br />

p. 35 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Subtraktion med flyttal<br />

• Givet två flyttal:<br />

a =<br />

a<br />

frac<br />

⋅ 2<br />

a<br />

exp<br />

exp<br />

b = b<br />

frac<br />

⋅ 2<br />

• Differensen mellan dessa tal är:<br />

b<br />

c<br />

=<br />

a − b<br />

=<br />

⎪⎧<br />

( a<br />

⎨<br />

⎪⎩ ( b<br />

frac<br />

frac<br />

− ( b<br />

− ( a<br />

frac<br />

frac<br />

⋅ 2<br />

⋅ 2<br />

−(<br />

a<br />

−(<br />

b<br />

exp<br />

exp<br />

−b<br />

−a<br />

exp<br />

exp<br />

)<br />

)<br />

)) * 2<br />

)) * 2<br />

a<br />

b<br />

exp<br />

exp<br />

, if<br />

, if<br />

a<br />

b<br />

exp<br />

exp<br />

≥ b<br />

≥ a<br />

exp<br />

exp<br />

p. 36 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


<strong>Multiplikation</strong> med flyttal<br />

• Givet två flyttal:<br />

a = a<br />

frac<br />

⋅ 2<br />

exp<br />

b = b<br />

frac<br />

⋅ 2<br />

• Produkten av dessa tal är:<br />

b<br />

a<br />

exp<br />

c<br />

=<br />

=<br />

a * b<br />

aexp<br />

+ bexp<br />

( * ⋅ 2 )<br />

a frac<br />

b frac<br />

p. 37 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

• Givet två flyttal:<br />

a = a<br />

Division med flyttal<br />

frac<br />

⋅ 2<br />

exp<br />

b = b<br />

frac<br />

⋅ 2<br />

• Kvoten mellan dessa tal är:<br />

c = a / b<br />

=<br />

b<br />

a<br />

exp<br />

aexp<br />

−bexp<br />

( / ⋅ 2 )<br />

a frac<br />

b frac<br />

p. 38 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


– Om exponenten är noll är mantissans första bit 0<br />

2exp-(127) * (1.m) (-1)s* = FlP(B)<br />

Uppstädning efter flyttalsoperationer...<br />

• När en flyttals-operation är klar måste den<br />

normaliseras<br />

– Mantissans skiftas tills dess första bit är 1<br />

– För varje skift-steg så räknas exponenten upp eller ned<br />

med ett.<br />

– Mantissans bitar till höger om den första ettan sparas<br />

p. 39 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

= (-1)s*(0.m)* 2-(126) FlP(B)<br />

Number representation criteria<br />

Q2<br />

Dynamic Range (neg.) = 4 Dynamic Range (pos.) = 3<br />

-1<br />

100<br />

-0.75<br />

101<br />

-0.5<br />

110<br />

-0.375<br />

MQE: 0.125<br />

-0.25<br />

111<br />

• Maximum Quantization Error:<br />

– Since not all numbers can be represented, quantization errors<br />

occur.<br />

• Dynamic Range:<br />

– Ratio between largest and smallest number that can be<br />

represented<br />

p. 40 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

0<br />

000<br />

0.25<br />

001<br />

0.5<br />

010<br />

0.6<br />

QE: 0.1<br />

0.75<br />

011


Fixed-Point vs. Floating-Point<br />

• Fixed-Point operationer fungerar pss som heltalsoperations<br />

<strong>och</strong> är snabbare<br />

• Fixed-point värden behöver skalas, vilket ofta<br />

leder till förlust av precision<br />

• Kostnaden för att bygga hårdvara är signifikant<br />

större för flyttals-processorer/räknare<br />

p. 41 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Sammanfattning<br />

• <strong>Multiplikation</strong> <strong>och</strong> <strong>division</strong> av heltal<br />

– Konvertera negativa tal till sitt positiva ditto.<br />

– Utför multiplikationen eller <strong>division</strong>en<br />

– Håll reda på vilket tecken resultatet skall ha<br />

– Konvertera positivt resultat till sitt negativa ditto om resultatet skall<br />

vara negativt<br />

• <strong>Multiplikation</strong> med potenser av 2 (mul med 2 k)<br />

– Implementeras som ett skift till vänster med k steg<br />

• Division med potenser av 2 (div med 2 k)<br />

– Implementeras som ett (aritmetiskt) skift till höger med k steg.<br />

Teckenbiten kopieras till vänster.<br />

p. 42 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


<strong>Talrepresentation</strong>er<br />

• Ett tal kan representeras binärt på många sätt.<br />

• De vanligaste taltyperna som skall representeras<br />

är:<br />

– Heltal, positiva heltal (eng. integers)<br />

• ett-komplementet, två-komplementet, sign-magnitude<br />

– Decimala tal med fix tal-område<br />

• Fix-tal (eng. Fixed point)<br />

– Decimala tal i olika talområden<br />

• Flyt-tal (eng. Floating point)<br />

p. 43 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES<br />

Fix-tal (eng. Fixed Point)<br />

• Fixed Point Format<br />

S<br />

Integer<br />

Fraction<br />

• S<br />

Sign bit in two’s complement. S=-2 n<br />

• Integer The whole part of the number<br />

• Fraction The fraction part of the number<br />

A fixed point number can be treated as an integer where the<br />

binary point is fixed to a placed indicated by the fraction scale<br />

2 m . Thus, a real number R in the fixed point format is<br />

represented as the integer floor(r*2 m ).<br />

p. 44 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES


Flyt-tal (eng. Floating Point)<br />

• IEEE Floating Point Format<br />

S<br />

Exp<br />

Mantissa<br />

• S Sign-bit of the number. S=1 means negative numbers.<br />

• Exp The exponent (power of 2) of the number. In the IEEE<br />

single format, Excess-127 coding is used, i.e., the number<br />

127 has been added to the exponents real value. Thus,<br />

Exp=254 means that the real exponent is +127, Exp=127<br />

is equivalent to 0, and 1 is equivalent to -126. Exp=255 is<br />

reserved for Inf and NaN. Exp=0 has special meaning<br />

• Mantissa The fraction part of the number, stored as<br />

1.xxxxx. The first bit is always one, and is therefore<br />

not stored. However, if Exp=0, the number is interpreted<br />

as 0.xxxxx to allow for gradual underflow.<br />

p. 45 - IE1204 <strong>Digital</strong> Design - F6 - Johnny Öberg, ICT/ES

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!