Talrepresentation. Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är:

Relevanta dokument
Digital Design IE1204

IE1205 Digital Design: F6 : Digital aritmetik 2

Digital Aritmetik Unsigned Integers Signed Integers"

Digital- och datorteknik

Datorsystemteknik DVG A03 Föreläsning 3

IE1204 Digital Design

ÖH kod. ( en variant av koden används i dag till butikernas streck-kod ) William Sandqvist

Digital Design IE1204

DIGITALA TAL OCH BOOLESK ALGEBRA

Talrepresentation. Heltal, positiva heltal (eng. integers)

Föreläsning 8: Aritmetik och stora heltal

Digital- och datorteknik

Digital- och datorteknik

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

F2 Binära tal EDA070 Datorer och datoranvändning

F2 Datarepresentation talbaser, dataformat och teckenkodning

Föreläsning 8: Aritmetik och stora heltal

Datorsystem. Övningshäfte. Senast uppdaterad: 22 oktober 2012 Version 1.0d

Styrteknik: Binära tal, talsystem och koder D3:1

Binär addition papper och penna metod

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Digital Design IE1204

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

NUV 647E. Digitalteknik och Datorarkitektur 5hp. 3x12 = 36 2x12 = 24 1x12 = 12 0x12 = 18

Digital elektronik CL0090

Föreläsning 8: Aritmetik I

Institutionen för elektro- och informationsteknologi, LTH

Innehåll. Datorteknik. Abstraktionsnivå 1. Spelkonsol - blockschema. Spelkonsol abstraktionsnivå 2. Abstraktionsnivå 2

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Mattias Wiggberg Collaboration

Maskinorienterad programmering. Kompendium: Aritmetik för HC12 Roger Johansson, 2013

7 november 2014 Sida 1 / 21

Datoraritmetik. Från labben. Från labben. Några exempel

PASS 2. POTENSRÄKNING. 2.1 Definition av en potens

översiktskurs (5DV031)

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Digital- och datorteknik

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Tentamen. Datorteknik Y, TSEA28

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

Ma C - Tek Exponentialekvationer, potensekvationer, logaritmlagar. Uppgift nr 10 Skriv lg4 + lg8 som en logaritm

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Tenta i Digitalteknik

Digital- och datorteknik

Kort beskrivning av Sveriges första dator BESK

Digital- och datorteknik

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Digitalteknik och Datorarkitektur

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Tenta i Digitalteknik

n Kap 4.1, 4.2, (4.3), 4.4, 4.5 n Numerisk beräkning av derivata med n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Programmeringsteknik I

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

Språket Python - Del 1 Grundkurs i programmering med Python

Tenta i Digitalteknik

TAL OCH RÄKNING HELTAL

3-3 Skriftliga räknemetoder

Tentamen. Datorteknik Y, TSEA28

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Dra streck. Vilka är talen? Dra pil till tallinjen. Skriv på vanligt sätt. Sätt ut <, > eller =

För att räkna upp, numrera, räkna antal och jämföra används ofta naturliga tal. Med vår vanliga decimalnotation (basen 10) skrivs dessa

2-14 Binära talsystemet-fördjupning Namn:

Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9

Klassdeklaration. Metoddeklaration. Parameteröverföring

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Övningsblad 1.1 A. Tallinjer med positiva tal. 1 Skriv det tal som motsvaras av bokstaven på tallinjen.

Tentamen ID1004 Objektorienterad programmering October 29, 2013

DOP-matematik Copyright Tord Persson. Potensform. Uppgift nr 10. Uppgift nr 11 Visa varför kan skrivas = 4 7

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Block 1 - Mängder och tal

Beräkningsvetenskap föreläsning 2

Data, typ, selektion, iteration

Räkna med C# Inledande programmering med C# (1DV402)

TSEA28 Datorteknik Y (och U)

Tenta i Digitalteknik

Föreläsning 9: Talteori

Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk)

Tentamen. Datorteknik Y, TSEA28

Grunderna i stegkodsprogrammering

Tenta i Digitalteknik

Pascal... Pascal. Pascal... Pascal...

Digitalteknik och Datorarkitektur 5hp

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

TSEA28 Datorteknik Y (och U)

Transkript:

Talrepresentation Ett tal kan representeras inärt på många sätt. De vanligaste taltyperna som skall representeras är: Heltal, positiva heltal (eng. integers ett-komplementet, två-komplementet, sign-magnitude Decimala tal med fix tal-område Fix-tal (eng. fixed-point Decimala tal i olika talområden Flyt-tal (eng. floating-point

Heltal Positiva Heltal: -2 7 0 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 =1 2 6 + 1 2 5 + 1 2 3 + 1 2 2 + 1 2 0 = 109 Negativa Heltal: -2 7 1 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = -1 2 7 +1 2 6 + 1 2 5 + 1 2 3 + 1 2 2 + 1 2 0 = -19

Multiplikation av två positiva heltal 0 0 1 0 * 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 + 0 0 1 0 0 0 1 0 1 1 0 2 *11 Skifta, addera multiplikanden eller 0 =22

Multiplikation med teckenit Teckeniten har negativ vikt! => Två-komplementera! 0 0 1 0 2 * 1 0 1 1-5 0 0 1 0 0 0 1 0 0 0 0 0 + 1 1 1 0 1 1 1 0 1 1 0-10

Teckeniten på det andra stället Teckenförläng! (Sign Extension, här till 7 itar 1 0 1 1-5 * 0 0 1 0 2 0 0 0 0 1 1 1 0 1 1 0 0 0 0 + 0 0 0 0 1 1 1 0 1 1 0-10

Multiplikation av två negativa tal Teckenförläng! Teckeniten har negativ vikt! => Två-komplementera! 1 0 1 1-5 * 1 0 1 1-5 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 + 0 1 0 1 0 0 1 1 0 0 1 +25 Svar 7-itar med tecken Det här verkade komplicerat

Eller så gör vi det enkelt för oss Använd enart positiva tal i multiplikationen Konvertera till positiva tal Håll reda på resultatets tecken Två-komplementera till negativt tal om nödvändigt ( ( ( ( ( ( ( ( ( ( ( ( + + + + + +

Enkel lösning, forts Sign A Sign A F correct A N-1 A N-2 A 0 Sign B 0 1 0 1 0 1 1 0 Sign B 0 0... 0 F correct =Sign A Sign B HA HA... HA Korrektionen sker genom att man invertera itarna och lägg till 1 2 s complement of Product, when correction is needed.

Multiplikation (två positiva tal ( a 3a2a1a0 ( 321 0 = ( q7q6q5q4q3q2q1q0 AND AND FA, carry AND FA, carry AND FA, carry

Multiplikation (två positiva tal ( a 3a2a1a0 ( 321 0 = ( q7q6q5q4q3q2q1q0 AND AND FA, carry AND FA, carry AND FA, carry

Multiplikation (två positiva tal ( a 3a2a1a0 ( 321 0 = ( q7q6q5q4q3q2q1q0 AND AND FA, carry AND FA, carry AND FA, carry

Multiplikation (två positiva tal ( a 3a2a1a0 ( 321 0 = ( q7q6q5q4q3q2q1q0 AND AND FA, carry AND FA, carry AND FA, carry

Multiplikation (två positiva tal ( a 3a2a1a0 ( 321 0 = ( q7q6q5q4q3q2q1q0 AND AND FA, carry AND FA, carry AND FA, carry

( aaaa( = ( qqqqqqqq 3 2 1 0 3 2 1 0 7 6 5 4 3 2 1 0 Multiplikation (två positiva tal Skiftning av multiplikatorn sker genom att den förs ett steg till vänster i nätet för varje nivå a 3 a 3 a 3 a 2 a 2 a 1 a2 a1 a0 a 1 a 0 a 0 0 1 2 a 3 a2 a1 a0 q7 q6 q5 q4 q3 q2 q1 q0 3 12 FA för 4 4 itar

( aaaa( = ( qqqqqqqq 3 2 1 0 3 2 1 0 7 6 5 4 3 2 1 0 Multiplikation (två positiva tal T MUL ~(3*N-4*T FA a 3 a 3 a 2 a 2 a 1 a 1 a 0 a 0 0 1 a 3 a2 a1 a0 2 a 3 a2 a1 a0 q7 q6 q5 q4 q3 q2 q1 q0 3 Carryfördröjs genom 8 steg!

Kan itarna adderas i någon annan ordning?

Ripple Carry-adderaren: a3 3 Snafråga C in3 a2 2 C in2 a1 1 C in1 a0 0 C in0 Vad händer om man förväxlar ledningarna a C in? Här har någon rört till det ordentligt med ledningarna! a 3 3 C in3 C out3 C out3 s 3 s 3 a2 2 C out 2 C out 2 C in2 C out1 a1 1 C in1 C out0 a0 0 a Katastrof! Don t care! C in0 Diskutera fram svaret tillsammans med din änkgranne! s 2 s 2 C out1 s 1 s 1 C out0 s 0 s 0

Snafråga a 3 3 C in3 a2 2 C in2 a1 1 C in1 a0 0 C in0 C out3 s 3 C out 2 s 2 C out1 s 1 C out0 s 0 Don t care! Summaiten är lika med udda paritet av initarna. Carry out är lika med majoritetsvärdet av initarna. I ingendera fallen har itarnas inördes ordning någon som helst etydelse.

Kan itarna adderas i någon annan ordning? Så här får q 2 samma resultat men med en annan itordning! Carry förs nu direkt till andra raden!

( aaaa( = ( qqqqqqqq 3 2 1 0 3 2 1 0 7 6 5 4 3 2 1 0 En snaare lösning - Carry- Save Multiplier (BV: sida 311 Figure 5.45 Multiplier carry-save array.

( aaaa( = ( qqqqqqqq 3 2 1 0 3 2 1 0 7 6 5 4 3 2 1 0 Save Multiplier (BV: sida 311 T MUL ~(2*N-2*T FA Minskar fördröjningen eftersom carry utgången kopplas direkt till nästa steg! En snaare lösning - Carry- Carryfördröjs nu genom 6 steg! Figure 5.45 Multiplier carry-save array.

( aaaa( = ( qqqqqqqq 3 2 1 0 3 2 1 0 7 6 5 4 3 2 1 0 En snaare lösning - Carry- Save Multiplier (BV: sida 311 Extra tips: sna Carrylook ahead adderare här! Figure 5.45 Multiplier carry-save array.

Multiplikation med två 0101*2 = 1010 (5*2=10 1010*2 = 10100 (-6*2=-12 01010101*2 = 010101010 (85*2=190 10010101*2 = 100101010 (-107*2=-214 jmfr multiplikation med 10 i asen 10: 63*10 = 630, -63*10 = -630 etc.

Multiplikation med 2 n 0101*2 = 1010 (5*2=10 0101*2 2 = 10100 (5*4=20 0101*2 3 = 101000 (5*8=40 0101*2 4 = 1010000 (5*16=80 jmfr multiplikation med 10 i asen 10: 6*10 = 60, 6*100 = 600, 6*1000 = 6000 etc.

Multiplikation med 2 n En multiplikation med 2 n kan göras med genom att skifta alla itar n steg till vänster och att fylla på med nollor 13 8 kan eräknas genom att skifta (01011 tre itar till höger Resultat: 01011000 motsvarar (104 10 Oservera att man ehöver flera itar för att representera resultatet!

Barrel-shifter 0 1 2 3 B 0 B 1 Multiplexor A 0 A 1 A 2 A 3 MUX 0 0 0 0 0 0 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 B 0 B 1 Multiplikation med (2 0, 2 1, 2 2, 2 3 dvs 1, 2, 4, 8 ( S 6 S 5 S 4 S 3 S 2 S 1 S 0 = ( A 3 A 2 A A 1 0 2 ( B B 1 0

Division mellan två positiva heltal (BV sid 693 fig 10.21 0 1 0 1 1 0 1 0 1 1-1 0 0 0 1-0 0 0 1 1-1 0 1 11/2 = 5 Rest = 1 a = q + r

Lite mer detaljerat 0 1 0 1 1 0 0 1 0 1 1-0 0 1 0-1 0 0 0 1-0 0 0 1 1-1 0 1 11/2 = 5 Rest = 1 a = q + r

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 a: 0 1 0 1 1 r: : 1 0 q:

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 a: 0 1 0 1 1 r: : -1 0 q: 0

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 a: 0 1 0 1 1 r: : -1 0 q: 0 0

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 a: 0 1 0 1 1 r: : -1 0 q: 0 0 1

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 a: 0 0 0 1 1 r: : -1 0 q: 0 0 1 0

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 a: 0 0 0 1 1 r: : -1 0 q: 0 0 1 0 1

Lite mer detaljerat a = q + r 11 2 = 5 + 1 2 0 0 0 0 1 r: 1 q: 0 0 1 0 1

Divideraren a 3 a2a1a 1 0 0 = q 3 q q q 1 1 0 + r1 r 1 0 0 q 3 tecken -it 0 FA a 1 3 0 Y / N FA 1 0 FA sutraktion 1 FA q 1 a 2 1 0 1 FA 1 Y / N a 1 1 0 1 FA FA 1 0 1 0 1 a 0 1 0 FA FA FA 1 q 2 1 0 1 0 Y / N q 0 Y / N 1 0 r 1 1 0 r 0

Using a multiplier and a ROM Q=A/B=A (1/B Properties - Fast - VERY ig multiplicator! for division 8-itarstal A Bara heltalsdelen 11111111.00000000 B ROM 1/B MUL Q 8-itarstal Bara fraction 00000000.11111111 16 16 multiplikator Hur många Byte måste ROM innehålla om A och B är 8 itars tal?

Using a multiplier and a ROM for division a = 25 5 = 25 1 5 = 25,0 0,2 = 5,00 a 25 25 5 20 2 3 4 6 7 50 33 25 20 17 14 (0,50 (0,33 (0,25 (0,20 (0,17 (0,14 1 500

Division med negativa heltal Division med negativa tal är ganska knepigt. Ett sätt att utföra divisionen ändå Konvertera till positiva tal Håll reda på resultatets tecken Två-komplementera till negativt tal om nödvändigt ( ( ( ( ( ( ( ( ( ( ( ( + + + + + +

Division med 2 0 1 01010/2 = 00101 (10/2 = 5 10100/2 = 11010 (-12/2 = -6 jmfr division med 10 i asen 10: 630/10 = 63, -630/10 = -63 etc.

Logiskt och Aritmetisk shift höger Man skiljer mellan logisk och aritmetiskt shift Logisk shift höger shiftar ara till höger. Bitarna skall ej tolkas som ett tal. Man fyller ara på med 0:or. Aritmetisk shift höger ehandlar itarna som ett tal. Teckeniten ehålls vid shift. Man fyller på till vänster med teckeniten.

Division med 2 n 1010/2 = 101 (10/2=5 10100/2 2 = 101 (20/4=5 101000/2 3 = 101 (40/8=5 1010000/2 4 = 101 (80/16=5 jmfr division med 10 i asen 10: 60/10 = 6, 600/100 = 6, 6000/1000 = 6 etc.

Division med 2 n En division med 2 n kan göras med genom att skifta alla itar n steg till höger och att fylla på med nollor Oservera att resultatet ehöver inte li korrekt, eftersom man egentligen ehöver itar efter kommatecknet 17/4 motsvarar att skifta 010001 2-itar till höger Resultat: 000100 = (4 10 Eftersom (0.25 10 inte kan representeras är resultatet inte korrekt!

Barrel-shifter A 0 A 1 A 2 A 3 A 4 A 5 A 6 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 B 0 B 1 Division med (2 0, 2 1, 2 2, 2 3 dvs 1, 2, 4, 8 ( S S S S S S S = ( A 6 5 4 3 2 1 0 7 A 6 A 5 A 4 A 3 A 2 A A 1 0 / 2 ( B B 1 0

Fix-tal (Fixed-point numers Två-komplementsrepresentation B= N-1. N-2... 1 0 where i {0,1} N-1 N-2... 1 0 Sign Bit Decimalt värde FiP(B=- N-1 2 0 + N-2 2-1 +...+ 1 2 -(N-2 + 0 2 -(N-1 Detta format kallas också för Q N-1 -format eller fractional representation

Fixed-Point Q2-Representation 000 Se detta som ett pedagogiskt exempel: Tre-itars fixpunktstal 110 111-0.5-0.25 0 0.25 001 0.5 010 Ett talsystem med ara 8 tal är ju i praktiken oanvändart! -0.75 0.75 101-1 100 011

Fixed-Point Q2-Representation 000 0.11 0.10 0.01 0.00 1.11 1.10 1.01 1.00 0,75 0,5 0,25 0 0,25 0,5 0,75 1.0 111 0 001-0.25 0.25 110-0.5 0.5 010-0.75 0.75 101-1 011 100 1... 0... + 1

Maximalt kvantiseringsfel Q2-1 100-0.75 101-0.375 MQE: 0.125 0.6-0.5 110-0.25 111 0 000 0.25 001 0.5 010 QE: 0.1 0.75 011 Maximum Quantization Error: Since not all numers can e represented, quantization errors occur.

Multiplikation i Q-formatet Multiplikation orsakar inte overflow i Q-formatet, men kan resultera i förlust av precision (1.10 2 (0.11 2 = (1.1010 2 (Q4-format = (1.10 2 (Q2-format Generellt: 2 1 0 Q2 2 1 0 Q2 Utökade teckenitar 5 4 3 2 1 0 ehålles Q4 kan vara smart att avrunda

Q-formatet Fixpunktsmultiplikation och fixpunktsdivision utnyttjar samma hårdvara som heltalsmultiplikation och heltalsdivision. Användning: Digitala filter tex. ljudkortet

Flyt-tal (eng. Floating-Point Numers Ett flyt-tal representeras med en tecken-it, exponent-itar och en mantissa ( fraktionsitar S Exponent Mantissa Sign-Bit exp m Värdet eräknas som FlP(B = (-1 s * (1.m * 2 ±exp Ofta är exp iaserad (har en offset, vilket då ger FlP(B = (-1 s * (1.m * 2 exp-(ias

IEEE-754 Flyttals-standarden IEEE-754 definierar ett 32- it flyttal som S 2 7 exp 2 0 2-1 m 2-23 Exponent Mantissa 31 30 exp 23 22 m 0 Värdet eräknas för en 8-itars exponent enligt nedan FlP(B = (-1 s * (1.m * 2 exp-(127 Specialla it pattern har reserverats för att representera negativ och positiv nolla

Floating-Point Numers (IEEE Exponent Values 1 to 254: normalized non-zero floating-point numers; iased exponent (-126...+127 Exponent of zero and fraction of zero: positive or negative zero Exponent of ones and fraction of zero: positive or negative infinity Exponent of zero and fraction of non-zero: Denormalized numer (true exponent is 126, represent numers from 0 to 2-126 FlP(B = (-1 s * (0.m * 2-126 Exponent of ones with a non-zero fraction: NotANumer (Exception Condition There is also a standard for a 64-it numer

IEEE 32 it float Tecken 1 it, exponent 8 itar, signifikand (mantissa 23 itar. Genom att exponenteten skrivs exess 127 kan flyttal storlekssorteras med vanlig heltalsaritmetik! Behandlas igen i Datortekniken

Decimalt additionsexempel a = 123456.7 = 101.7654 normalized = 1.234567 10 = 1.017654 10 5 2 aligned = 0.001017654 10 Det tal som är minst (här skiftas (align så åda talen får samma exponent. c = a + + 1.234567 10 0.001017654 10 1.235584654 10 Svaret kan ehöva normaliseras (skiftas. 5 5 5 Flyttalsoperationer är mycket krävande, om man inte har specialiserad hårdvara - addition kan vara mer krävande än multiplikation! 5

Addition med flyttal Givet två flyttal: c = = a + ( a ( + ( + ( a a = = a 2 2 frac frac ( a ( 2 2 a a exp exp Summan av dessa tal är: frac frac frac frac exp exp exp exp *2 *2 a exp exp,, Det tal som är minst skiftas if if a exp exp a exp exp

Sutraktion med flyttal Givet två flyttal: a = = frac frac 2 2 Differensen mellan dessa tal är: c = a = ( a ( frac frac ( ( a frac frac a 2 2 ( a ( exp exp a a exp exp exp exp *2 *2 a exp exp,, Det tal som är minst skiftas if if a exp exp a exp exp

Decimalt multiplikationsexempel c a c c = a = 4,734612 10 = 4,734612 5,417242 10 = 2,564854 10 3 9 = 5,417242 10 3+ 5 normalisera 5 Resultatet har fler siffror än vad som ryms avrunda. = 25,648538980104 10 8 Multiplikation inneär att man gör en addition av exponenterna, och en multiplikation med fraktionsdelarna. Svaret måste sedan normaliseras (skiftas.

Multiplikation med flyttal Givet två flyttal: a = = a a* frac frac 2 2 Produkten av dessa tal är: c = = a exp exp ( * 2 a + a frac frac exp Enklare! exp

Givet två flyttal: Division med flyttal a = frac frac 2 2 Kvoten mellan dessa tal är: c = = = a a / a exp exp ( / 2 a a frac frac exp exp

Uppstädning efter flyttalsoperationer... När en flyttals-operation är klar måste den normaliseras Mantissans skiftas tills dess första it är 1 För varje skift-steg så räknas exponenten upp eller ned med ett. Mantissans itar till höger om den första ettan sparas FlP(B = (-1 s * (1.m * 2 exp-(127 Om exponenten är noll är mantissans första it 0 FlP(B = (-1 s * (0.m * 2 -(126

Flyttalsenhet Det krävs mycket kod och eräkningstid för att utföra flyttalsoperationer med en dator som saknar hårdvarustöd för detta. PC-datorerna har haft inyggda flyttalsenheter från och med 486 (1989.

Dyraste mjukvaruuggen? ESA rocket crashes at launch - 1996 doule (64-itars flyttal Översättningen lev fel rymdes inte! signed short int (16-itars 2-komplementtal Användes i systemet för horisontel ias Någon hade sovit under föreläsningen aritmetik2!

Fixed-Point vs. Floating-Point Fixed-Point operationer fungerar pss som heltals-operations och är snaare Fixed-point värden ehöver skalas, vilket ofta leder till förlust av precision Kostnaden för att ygga hårdvara är signifikant större för flyttalsprocessorer/räknare

Sammanfattning Multiplikation och division av heltal Konvertera negativa tal till sitt positiva dito. Utför multiplikationen eller divisionen Håll reda på vilket tecken resultatet skall ha Konvertera positivt resultat till sitt negativa dito om resultatet skall vara negativt Multiplikation med potenser av 2 (mul med 2 k Implementeras som ett skift till vänster med k steg Division med potenser av 2 (div med 2 k Implementeras som ett (aritmetiskt skift till höger med k steg. Teckeniten kopieras till vänster.