dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)
|
|
|
- Dagmar Therkildsen
- 10 år siden
- Visninger:
Transkript
1 dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009
2 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal repræsenteret i det binære talsystem. I SCO, afsnit 3.2.3, er det forklaret hvordan en aritmetisk logisk enhed kan udføre binær addition. Vi skal se, hvordan denne binære addition både kan benyttes til at lave addition og subtraktion af ikke-negative heltal og til addition og subtraktion af heltal. Samtidig skal vi se, hvordan disse operationer benyttes i et højniveausprog, som f.eks. C, til at lave addition og subtraktion på simple heltallige værdier. 1.1 Konvertering imellem ikke-negative heltal og heltal Betragt følgende C-program: #include <stdio.h> #define printint16(i) printf("i = %hd \n", i) #define printuint16(ui) printf("ui = %hu \n", ui) typedef short int INT16 ; typedef unsigned short int UINT16 ; int main() { INT16 i; UINT16 ui; } i = 5; ui = i; printint16(i); printuint16(ui); i = -3; ui = i; printint16(i); printuint16(ui); ui = 65526; i = ui; printint16(i); printuint16(ui); Variable af typen INT16 har værdier som ligger i I 16 = [ 2 15, ] mens variable af typen UINT16 har værdier i UI 16 = [ 0, ]. Dette gælder i hvert fald hvis der benyttes 2-komplement repræsentation af heltal og der bruges 16 bit til variable af typen short int. 1
3 En kørsel af programmet gav: i = 5 ui = 5 i = -3 ui = i = -10 ui = At de to først udskrevne værdier er identiske kan vel ikke undre. Sådan skulle det gerne være. Værdien 5 ligger jo i begge værdiområder. Men for de fire sidst udskrevne værdier kræves vist en forklaring. Værdien -3 ligger jo ikke i UI 16, så hvordan får ui så værdien ved tildelingen ui = i? Vi ved fra forrige afsnit, at værdien -3 repræsenteres i variablen i med et bitmønster W B 16 så der gælder: 3 = W 2 = W 2 16 dvs. W = = = Så noget kunne jo tyde på, at de 16 bit som repræsenterer værdien -3 i variablen i blot er kopieret fra i over i ui ved tildelingssætningen; det er de to forskellige fortolkninger af bitmønstret W, som giver de to forskellige resultater i udskriften. Denne antagelse om hvad der foregår passer også med de to sidste udskrifter: 10 = W 2 = W 2 16 = Nu kan det være lidt besværligt at tænke i bitmønstre, når vi i almindelighed skal finde en sammenhæng imellem de to fortolkninger. I stedet kan vi indføre følgende simple afbildninger UINT N : I N UI N og INT N : UI N I N idet i I N, ui UI N : { i når i 0 UINT N (i) = i + 2 N når i < 0 og { ui når ui < 2 N 1 INT N (ui) = ui 2 N når ui 2 N 1 Med disse afbildninger kan vi simpelt beskrive hvad der sker ved tildelingssætningerne i C-programmet: UINT 16 ( 3) = = og INT 16 (65526) = = Addition og subtraktion af ikke-negative heltal Når den aritmetiske enhed udfører addition (f.eks. når IJVM udfører ordren iadd med to bitmønstre af længde 32 som operander) sker det som binær addition af de binære cifre i de to operander; de enkelte binære cifre adderes med menteoverføring fra de mindst betydende cifre til de mest betydende cifre. En eventuel mente fra additionen af de mest betydende cifre ses der bort fra. Dette kan udtrykkes som en afbildning add : B N B N B N. F.eks. således i B 5 : 2
4 add(01000, 00110) = add(01011, 10110) = add(10011, 11000) = add(11111, 11111) = add(01100, 01000) = En konkret implementation af denne afbildning ved hjælp af digitale komponenter i den aritmetisk logiske enhed kan ses i SCO, figur 3-20 og I figur 3-18 redegøres der for, at resultatet af en beregning i det kombinatoriske kredsløb i (b) netop svarer til den lille additionstabel for binær addition, (a) i figuren. I figur 3-20 er det to 8 bit operander A = A 7... A 0 og B = B 7... B 0. Resultatet O = O 7... O 0 er altså det bitmønster som kommer ud af afbildningen add(a, B) vel at mærke hvis INC = 0 (INC er menten ind i den mindst betydende bitposition). Kalder vi menten fra den mest betydende bitposition for C N ( Carry; optræder som C bit i Program Status Word (PSW) på de fleste maskiner, SCO, s. 310) fås generelt, at afbildningen add opfylder: add(w 1, W 2 ) + C N 2 N = W 1 + W 2 Dette slutter vi ud fra strukturen i figur 3-20 og korrektheden af den enkelte ciffervise addition forklaret i figur Vi kan også skrive sammenhængen imellem en ikke-negativ heltalsfortolkning af bitmønstrene add(w 1, W 2 ), W 1 og W 2 således: { W1 + W add(w 1, W 2 ) = 2 når C N = 0 W 1 + W 2 2 N når C N = 1 eller add (W 1, W 2 ) = ( W 1 + W 2 ) mod 2 N Hvis der ikke er mente, altså hvis C N = 0, gælder der jo: add (W 1, W 2 ) = W 1 + W 2 Dvs. resultatet er korrekt betragtet som addition i de ikke-negative heltal UI N. Hvis der derimod optræder en mente, er resultatet større end 2 N 1 altså udenfor værdiområdet for UI N og vil derfor ikke kunne repræsenteres med N bit ved afbildningen 1. I denne situation taler vi om overløb m.h.t. UI N. Når der er overløb, er resultatet altså ikke korrekt, men de N bit som fås ved add(w 1, W 2 ) er dog korrekte i den forstand, at de svarer til de mindst betydende N bit af de N + 1 bit der ved overløb skal til for at repræsenterer summen W 1 + W 2. Når vi udfører addition på elementer i UI N kan vi altså risikere at ryge ud af værdiområdet. Vi skal nu undersøge hvordan dette viser sig i følgende C-program: 3
5 #include <stdio.h> #define printuint16(ui) printf("ui = %hu \n", ui) typedef unsigned short int UINT16 ; int main() { UINT16 max = 65535; UINT16 ui, ui1, ui2; } // Addition ui1=32000; ui2=32000; ui = ui1 + ui2; printuint16(ui); ui1=64000; ui2=64000; ui = ui1 + ui2; printuint16(ui); ui1=max; ui2=1; ui = ui1 + ui2; printuint16(ui); // Subtraction ui1=45; ui2=27; ui = ui1 - ui2; printuint16(ui); ui1=7; ui2=10; ui = ui1 - ui2; printuint16(ui); ui1=0; ui2=1; ui = ui1 - ui2; printuint16(ui); Resultatet af en kørsel blev: ui = ui = ui = 0 ui = 18 ui = ui = Første resultat er jo i UI 16, så det er godt nok. Den anden addition skulle jo give , men giver Det rigtige resultat kan skrives som = = Dette stemmer med, at vi i denne situation får 4
6 smidt menten væk og resultatet er altså korrekt på nær menten. Og max + 1 skulle jo give 65536, men resultatet er 0. Der startes simpelthen forfra ved 0, når vi lægger en til det bitmønster som repræsenterer det største tal i UI 16. En slags binær kilometertæller. Addition i UI N, afbildningen add UI : UI N UI N UI N, udføres altså som binær addition i den aritmetisk logiske enhed på de to bitmønstre som repræsenterer de to aktuelle operandværdier ui 1 og ui 2. Dette giver os følgende udtryk for addition af ikke-negative heltal: { ui1 + ui add UI (ui 1, ui 2 ) = 2 når ui 1 + ui 2 < 2 N ui 1 + ui 2 2 N når ui 1 + ui 2 2 N eller add UI (ui 1, ui 2 ) = (ui 1 + ui 2 ) mod 2 N Læg også mærke til, at man ikke får noget at vide om, at der har været overløb undervejs ved kørslen af C-programmet. Ved subtraktion fås det rigtige resultat, når dette er i værdiområdet. Et eksempel ses i den første subtraktion i C-programmet. Hvis resultatet derimod ikke er i værdiområdet er resultatet forkert. F.eks. er dette tilfældet i udregningen 7-10 = -3, hvor resultatet i udskriften er et stort heltal Nu ved vi jo fra tidligere, at dette netop er ikke-negativ heltalsfortolkningen af det bitmønster som repræsenterer -3. I denne situation ser det altså ud som om subtraktionen foregår ved at vi får lov til at låne 2 16 = 65536, altså i almindelighed: { ui1 ui sub UI (ui 1, ui 2 ) = 2 når ui 1 ui 2 2 N + ui 1 ui 2 når ui 1 < ui 2 eller sub UI (ui 1, ui 2 ) = (ui 1 + (2 N ui 2 )) mod 2 N Den subtraktion, der foregår, kan således forstås ud fra addition af ikke-negative heltal, nemlig denne addition: sub UI (ui 1, ui 2 ) = add UI (ui 1, (2 N ui 2 )) Dette viser, at subtraktion kan udføres ved hjælp af den tidligere definerede addition, hvis vi vel at mærke først udregner 2 N ui 2. Nu er dette igen en subtraktion, så det ser ud som om vi alligevel ikke slipper for at skulle lave en subtraktion. Men netop denne specielle subtraktion 2 N ui kan klares simpelt uden subtraktion: 2 N ui = ui + 1 hvor ui er det heltal man får ved at se på bitmønstret for ui, dvs. ui 1, danne bitvis komplement af dette og så fortolke dette som et ikke-negativt heltal. Resultatet fås ud fra den relation vi udledte i forrige afsnit: som her kan udtrykkes således: W + W = 2 N 1 ui + ui = 2 N 1 Heraf fås: sub UI (ui 1, ui 2 ) = add UI (ui 1, add UI (ui 2, 1)) 5
7 Det er netop sådan den aritmetisk logiske enhed i SCO udfører subtraktion: Bitmønstret for den ene operand adderes binært til det bitkomplementerede bitmønster for den anden operand, der lægges 1 til ved at lade menten ind i den mindst betydende bit være 1 (INC = 1 i figur 3-20). Den sidste subtraktion i C-programmet passer også med denne beskrivelse: Alt ialt har vi altså fundet at: sub UI (0, 1) = add UI (0, add UI (1, 1)) = add UI (0, add UI (2 16 2, 1)) = add UI (0, ) = = sub UI (ui 1, ui 2 ) = add UI (ui 1, add UI (ui 2, 1)) = { ui1 ui 2 når ui 1 ui 2 2 N + ui 1 ui 2 når ui 1 < ui 2 Dette viser, at subtraktion giver det korrekte resultat, når resultatet er i værdiområdet og at subtraktion kan udføres ved hjælp af bitkomplementering og addition. Bemærk, at vi heller ikke ved subtraktion får at vide om der har været overløb undervejs ved kørslen af programmet. 1.3 Addition og subtraktion af heltal Betragt C-programmet: #include <stdio.h> #define printint16(i) printf("i = %hd \n", i) typedef short int INT16 ; int main() { INT16 maxpos = 32767; INT16 minneg = ; INT16 i, i1, i2; i1=5; i2=7; i = i1 + i2; printint16(i); i1=32000; i2=32000; i = i1 + i2; printint16(i); i1=maxpos; i2=1; i = i1 + i2; printint16(i); 6
8 } i1=45; i2=27; i = i1 - i2; printint16(i); i1=-32000; i2=32000; i = i1 - i2; printint16(i); i1=minneg; i2=1; i = i1 - i2; printint16(i); og resultatet af en kørsel: i = 12 i = i = i = 18 i = 1536 i = Igen er resultaterne korrekte sålænge de er i værdiområdet for de heltallige variable, her I 16. Når resultatet er udenfor værdiområdet [-32768, 32767] er det tydeligvis ikke korrekt. Ser man i den genererede symbolske maskinkode (f.eks. til en SPARC), så kan man se, at udregningen af i1 + i2 = faktisk bliver udført af samme ordre som blev brugt i det forrige C-program til at udføre ui1 + ui2 = Der blev resultatet jo korrekt udregnet til Fortolker vi bitmønstret for som et tal i I 16 får vi: INT 16 (64000) = = 1536 altså netop den udskrevne værdi i anden linie. Addition af heltal i et C-program, altså afbildningen add I : I N I N I N, kan derfor udtrykkes således: add I (i 1, i 2 ) = INT N (add UI (UINT (i 1 ), UINT (i 2 ))) De to operander i 1 og i 2 opfattes som ikke-negative heltal, dernæst adderes disse som bitmønstre i den aritmetisk logiske enhed, og endelig fortolkes resultatet som et 2-komplement repræsenteret heltal. Men hvad har nu dette med det resultat at gøre som vi ønsker, altså i 1 + i 2? Og hvornår er der overløb i denne beregning? For at finde ud af det skal vi først bemærke, at der gælder følgende for i I N : UINT (i) = i mod 2 N Dette fås simpelt ud fra definitionen af UINT. Bruges dette fås: add I (i 1, i 2 ) = INT N (add UI (i 1 mod 2 N, i 2 mod 2 N )) = INT N ((i 1 mod 2 N + i 2 mod 2 N ) mod 2 N ) = INT N ((i 1 + i 2 ) mod 2 N ) = INT N { i1 + i 2 når 0 i 1 + i 2 i 1 + i N når i 1 + i 2 < 0 7
9 Benyttes definitionen for INT N på de to tilfælde fås: i 1 + i 2 når 0 i 1 + i 2 < 2 N 1 i add I (i 1, i 2 ) = 1 + i 2 2 N når 2 N 1 i 1 + i 2 < 2 N i 1 + i N når 2 N < i 1 + i 2 < 2 N 1 i 1 + i 2 når 2 N 1 i 1 + i 2 < 0 Resultatet er altså korrekt, når i 1 +i 2 I N. Hvis vi derimod falder udenfor værdiområdet bliver resultatet forkert. Dette kaldes også her for overløb. Overløb kan forekomme på to måder: 1. summen af to positive tal i 1 og i 2 er større end 2 N 1 1, i denne situation bliver resultatet af beregningen i 1 + i 2 2 N, altså et negativt tal, som jo oplagt er forkert; 2. summen af to negative tal bliver mindre end 2 N 1, i denne situation bliver resultatet i 1 + i N, altså et positivt tal, igen oplagt forkert. I begge de to overløbssituationer er resultatet altså forkert, men vi får dog den korrekte restklasse mod 2 N. På lignende måde kan vi finde afbildningen sub I : I N I N I N ud fra sub UI : sub I (i 1, i 2 ) = INT N (sub UI (UINT N (i 1 ), UINT (i 2 ))) = INT N (sub UI (i 1 mod 2 N, i 2 mod 2 N )) = INT N ((i 1 mod 2 N + 2 N i 2 mod 2 N ) mod 2 N ) = INT N ((i 1 i 2 ) mod 2 N ) { i1 i = INT 2 når 0 i 1 i 2 N i 1 i N når i 1 i 2 < 0 i 1 i 2 når 0 i 1 i 2 < 2 N 1 i = 1 i 2 2 N når 2 N 1 i 1 i 2 < 2 N i 1 i N når 2 N < i 1 i 2 < 2 N 1 i 1 i 2 når 2 N 1 i 1 i 2 < 0 Igen er resultatet korrekt, når det er i værdiområdet. Og igen kan overløb forekomme på to måder. Addition og subtraktion af heltal kan altså foregå med de samme maskinordre, som blev benyttet ved de tilsvarende regneoperationer i de ikke-negative heltal. Der er imidlertid forskel m.h.t. hvilke situationer, der betragtes som overløb giver ikke overløb i UI N, mens det giver overløb i I N giver overløb i UI N men ikke i I N. Ønsker man i et program at kunne kontrollere om der har været overløb m.h.t. UI N kan man i et maskinprogram efter udførelsen af en regneoperation undersøge indholdet af PSW og kontrollere bit C. Overløb m.h.t. I N kontrolleres ved at se på bit V (overflow), SCO, s
10 1.4 Relationer Vi skal nu se på, hvordan man udregner relationer imellem heltal på maskinniveau f.eks. en relationen som x < y, hvor de to operander er 32 bit 2- komplement repræsenterede heltal, som vi kender det fra elementerne på stakken på IJVM. Umiddelbart kunne vi jo forsøge os med: iload x iload y isub // stack = x - y, x - y < 0 => x < y iflt else Sådan bliver det jo blevet gjort i darkos-e02-nr.2 i metoden gcd. Der er vi i den situation, at de to operander er antaget at være positive. Og så går det godt. Der kan jo ikke optræde overløb i subtraktionen i den situation. Men i almindelighed kan der jo optræde overløb og hvad sker der så? Ja, så kan resultatet blive forkert. Betragt f.eks. x = og y = -10. Så er resultatet jo x - y = Da værdiområdet for 32 bit heltal er [ , ] vil staktoppen altså i dette tilfælde ikke rumme det rigtige resultat, men i stedet vil vi få et bitmønster, som vil blive fortolket som negativt i iflt. Dette fører til, at x fejlagtigt betragtes som mindre end y. Vi kan altså ikke klare os med den simple programstump ovenfor. Problemet er at vi lidt sløset har skrevet stack = x - y i stedet for stack = sub(x,y) og vi har ikke taget stilling til hvad der skal ske ved overløb. Hvad skal vi stille op med dette problem? En mulighed er at undersøge fortegn for de to operander og så bruge dette til at afgøre forholdet imellem de to operander i de tilfælde, hvor isub kan føre til overløb. På den måde kan man sikre sig, at man kun udføre subtraktion, når der ikke kan forekomme overløb. Det bliver imidlertid ret omfattende at tage hånd om overløb eksplicit på denne måde. På JVM er der da også ordrer, som klarer heltalsrelationerne direkte, f.eks. vil ordren if icmplt sammenligne de to værdier øverst på stakken med relationsoperatoren <. På de fleste maskiner er der sådanne ordrer. 9
11 Opgaver Opgave 2.1 Få definitionen af INT N og UINT N til at passe med: fra afsnit 1. Opgave 2.2 Betragt W 2 = W w N 1 2 N add(01000, 00110) = add(01011, 10110) = add(10011, 11000) = add(11111, 11111) = add(01100, 01000) = i B 5. Kontroller at add (W 1, W 2 ) = ( W 1 + W 2 ) mod 2 N gælder i eksemplerne. Hvor optræder der overløb m.h.t. UI 5? Opgave 2.3 Betragt igen add(01000, 00110) = add(01011, 10110) = add(10011, 11000) = add(11111, 11111) = add(01100, 01000) = i B 5. Kontroller at add (W 1, W 2 ) 2 mod 2 N = ( W W 2 2 ) mod 2 N gælder i eksemplerne. I hvilke af eksemplerne er der overløb m.h.t. I 5? Få eksemplerne til at passe med analysen af overløb. Opgave 2.4 Når vi udfører binær subtraktion sker det f.eks. således: Vi låner altså 2 5 = 32 i det første eksempel. Generelt fås: { W1 W sub (W 1, W 2 ) = 2, når W 1 W 2 2 N + W 1 W 2, når W 1 < W 2 Få formlen til at passe med de to eksempler i B 5 ovenfor. 10
12 Opgave 2.5 Betragt to simple heltalsvariable i og j i et symbolsk IJVM program. Vi refererer til dem ved hjælp af navnene i og j f.eks. således iload i. Beskriv, hvordan de seks relationsoperatorer <, <=, >, >=, = og kan udregnes på IJVM anvendt på i og j. Man kan f.eks. vise, hvordan C-sætningen: if ( i relationsoperator j ) S_1 else S_2 programmeres på IJVM for de seks relationsoperatorer. Prøv bare for en af dem at tage højde for overløb. Det er godt nok besværligt, men prøv alligevel. 11
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
Repræsentation af tal
Repræsentation af tal DM526 Rolf Fagerberg, 2009 Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, kommatal) Bogstaver Computerinstruktion (program)
Repræsentation af tal
Repræsentation af tal DM534 Rolf Fagerberg Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, decimaltal (kommatal)) Bogstaver Computerinstruktion
Repræsentation af tal
Repræsentation af tal DM534 Rolf Fagerberg Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur og
Eksamen dcomnet Q2/2012. Studiekortsnummer Navn
Eksamen dcomnet Q2/2012 Studiekortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt
Eksamen dcomnet 2012Q4. Årskortsnummer Navn
Eksamen dcomnet 2012Q4 Årskortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive årskort og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt svar per
Eksamen dcomnet Q2/2010. Navn
2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx
Maskinarkitektur. Lars Kristensen [email protected]. Christian Storm [email protected]. dmasark 1
Maskinarkitektur Lars Kristensen [email protected] Christian Storm [email protected] dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
Computere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen ([email protected]) Jens Bennedsen ([email protected]) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...
Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens
Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn
Eksamen Computerarkitektur 2013Q4 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
CPUer og maskinkode DM534. Rolf Fagerberg
CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal
Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn
Computerarkitektur Eksamen 2014Q3 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
Niveauer af abstrakte maskiner
Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet
DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie???
Romertal. Hvordan var de struktureret?? Systematisk?? I V X L C D M 1 5 10 50 100 500 1000 Regler: Hvis et lille tal skrives foran et stort tal trækkes tallet fra: IV = 5-1 = 4 Hvis et lille tal skrives
Programmering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Det endelige tal fremkommer ved at opstille bogstavkombinationer, hvor følgende regler gælder:
Talsystemer Et talsystem er betegnelsen for den måde, hvorpå tal kan skrives ud fra et grundtal. I dag anvendes i de fleste lande titalssystemet, hvor tallets placering har en værdi (positionssystem),
APPENDIX A INTRODUKTION TIL DERIVE
APPENDIX A INTRODUKTION TIL DERIVE z x y z=exp( x^2 0.5y^2) CAS er en fællesbetegnelse for matematikprogrammer, som foruden numeriske beregninger også kan regne med symboler og formler. Det betyder: Computer
Det binære talsystem og lidt om, hvordan computeren virker
Det binære talsystem og lidt om, hvordan computeren virker Det binære talsystem...2 Lidt om, hvorledes computeren anvender det binære talsystem...5 Lyst til at lege med de binære tal?...7 Addition:...7
Noter til Perspektiver i Matematikken
Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden
Programmering i C Intro og grundlæggende C 5. marts 2007
Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR [email protected] Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner
Computerarkitektur. - en introduktion til computerarkitektur med LINDA
Computerarkitektur - en introduktion til computerarkitektur med LINDA [email protected] Faraz Butt [email protected] Mads Danquah [email protected] Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig
DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Algebra - Teori og problemløsning
Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.
Talrækker. Aktivitet Emne Klassetrin Side
VisiRegn ideer 3 Talrækker Inge B. Larsen [email protected] INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Talrækker 2-4 Elevaktiviteter til Talrækker 3.1 Talrækker (1) M-Æ 5-9 3.2 Hanoi-spillet
DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til
Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.
Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver
De rigtige reelle tal
De rigtige reelle tal Frank Villa 17. januar 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion
Det er en af de hyppigst forekommende udregninger i den elementære talbehandling at beregne gennemsnit eller middeltal af en række tal.
Tre slags gennemsnit Allan C. Malmberg Det er en af de hyppigst forekommende udregninger i den elementære talbehandling at beregne gennemsnit eller middeltal af en række tal. For mange skoleelever indgår
Hvad er matematik? C, i-bog ISBN 978 87 7066 499 8
Et af de helt store videnskabelige projekter i 1700-tallets Danmark var kortlægningen af Danmark. Projektet blev varetaget af Det Kongelige Danske Videnskabernes Selskab og løb over en periode på et halvt
Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal.
1 Tal Tal kan forekomme os nærmest at være selvfølgelige, umiddelbare og naturgivne. Men det er kun, fordi vi har vænnet os til dem. Som det vil fremgå af vores timer, har de mange overraskende egenskaber
Grundlæggende køretidsanalyse af algoritmer
Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers
Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Mikroarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1 Level 1: Mikrokode niveauet Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation
matematik Demo excel trin 2 bernitt-matematik.dk 1 excel 2 2007 by bernitt-matematik.dk
matematik excel trin 2 bernitt-matematik.dk 1 excel 2 2007 by bernitt-matematik.dk matematik excel 2 1. udgave som E-bog 2007 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt efter aftale
Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer
Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1 Stored-program
Programmering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
Matematik, der afgør spil
Artikeltype 47 Matematik, der afgør spil Sandsynlighedsregning vinder ofte. Kombinatorisk spilteori sejrer hver gang Mads Thrane Hvis du er træt af at tabe opvasketjansen i Sten Saks Papir eller Terning,
ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44
ITS MP 013 V009 Elevens navn IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 Udarbejdet af Søren Haahr, juni 2010 Copyright Enhver mangfoldiggørelse af tekst eller illustrationer
Excel - begynderkursus
Excel - begynderkursus 1. Skriv dit navn som undertekst på et Excel-ark Det er vigtigt når man arbejder med PC er på skolen at man kan få skrevet sit navn på hver eneste side som undertekst.gå ind under
HinkeHop DE HURTIGE 5-6 ÅR. Sådan gør du: Prøv at justere aktiviteten sådan her...!
HinkeHop Sådan gør du: 1. Print hoppepladerne. 2. Hvis du har kridt og et sted på jorden, der må tegnes, kan du sammen med barnet tegne hoppeplade 1 med kridt på jorden. Sørg for at tegne felterne, så
Brøk Laboratorium. Varenummer 72 2459
Brøk Laboratorium Varenummer 72 2459 Leg og Lær om brøker Brøkbrikkerne i holderen giver brugeren mulighed for at sammenligne forskellige brøker. Brøkerne er illustreret af cirkelstykker som sammenlagt
Negative cifre n. I et positionssystem skriver man et tal på formen xn a + xn 1a
Af Peter Harremoës, Herlev Gymnasium Indledning De fleste lærebogssystemer til brug i gymnasiet eller HF indeholder et afsnit om vort positionssystem. Det bliver gerne fremstillet som noget af det mest
JavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Introduktion til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 [email protected] Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
Vektorer og lineær regression
Vektorer og lineær regression Peter Harremoës Niels Brock April 03 Planproduktet Vi har set, at man kan gange en vektor med et tal Et oplagt spørgsmål er, om man også kan gange to vektorer med hinanden
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Vektorer og lineær regression. Peter Harremoës Niels Brock
Vektorer og lineær regression Peter Harremoës Niels Brock April 2013 1 Planproduktet Vi har set, at man kan gange en vektor med et tal. Et oplagt spørgsmål er, om man også kan gange to vektorer med hinanden.
Ligeværdige udtryk. Aktivitet Emne Klassetrin Side. Vejledning til Ligeværdige udtryk 2
VisiRegn ideer 4 Ligeværdige udtryk Inge B. Larsen [email protected] INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Ligeværdige udtryk 2 Elevaktiviteter til Ligeværdige udtryk 4.1 Ligeværdige
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1
Københavns Universitet, Det naturvidenskabelige Fakultet 1 Lineær Algebra (LinAlg) Afleveringsopgave 1 Eventuelle besvarelser laves i grupper af - 3 personer og afleveres i to eksemplarer med 3 udfyldte
Niveauer af abstrakte maskiner
Det digitale niveau Niveauer af abstrakte maskiner Digitale kredsløb Logiske tilstande: (- V), (2-5 V) Kombinatoriske kredsløb Logiske tilstande: (- V), (2-5 V) Registre Logiske tilstande: (- V), (2-5
Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract
Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget
Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.
Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).
Skriftlig eksamen, Programmer som Data 2. 3. januar 2014
Skriftlig eksamen, Programmer som Data 2. 3. januar 2014 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamenssættet udleveres elektronisk fra kursets hjemmeside torsdag 2.
Bits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Opgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB. 30.04.2015
Opgave: BOW Bowling danish BOI 0, dag. Tilgængelig hukommelse: 6 MB. 30.04.0 Byteasar er fan af både bowling og statistik. Han har nedskrevet resultaterne af et par tidligere bowling spil. Desværre er
Komplekse tal og Kaos
Komplekse tal og Kaos Jon Sporring Datalogisk Institut ved Københavns Universitet Universitetsparken 1, 2100 København Ø August, 2006 1 Forord Denne opgave er tiltænkt gymnasiestuderende med matematik
Lektion 3 Sammensætning af regnearterne
Lektion Sammensætning af regnearterne Indholdsfortegnelse Indholdsfortegnelse... Plus, minus, gange og division... Negative tal... Parenteser og brøkstreger... Potenser og rødder... Lektion Side 1 Plus,
Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
Fejlkorligerende køder Fejlkorrigerende koder
Fejlkorligerende køder Fejlkorrigerende koder Olav Geil Skal man sende en fødselsdagsgave til fætter Børge, så pakker man den godt ind i håb om, at kun indpakningen er beskadiget ved modtagelsen. Noget
Opgave 1. Hvilket af følgende tal er størst? Opgave 2. Hvilket af følgende tal er mindst? Opgave 3. Hvilket af følgende tal er størst?
Tip til. runde af Georg Mohr-Konkurrencen Algebra Her præsenteres idéer til hvordan man løser algebraopgaver. Det er ikke en teoretisk indføring, men der er i stedet fokus på at illustrere nogle centrale
Polynomiumsbrøker og asymptoter
Polynomiumsbrøker og asymptoter Frank Villa 9. marts 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold
i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0
BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den
Et alfabet er en ordnet mængde af bogstaver og andre tegn
16. Tegn og alfabet I dette kapitel studerer vi tegn. Tegn udgør grundbestanddelen i enhver form for tekstbehandling. I senere kapitler, nærmere betegnet kapitel 27 - kapitel 31, ser vi på sammensætningen
Teoretiske Øvelsesopgaver:
Teoretiske Øvelsesopgaver: TØ-Opgave 1 Subtraktion division i legemer: Er subtraktion division med elementer 0 i legemer veldefinerede, eller kan et element b have mere end ét modsat element -b eller mere
Fagårsplan 12/13 Fag: Matematik Klasse: 3.A Lærer:LBJ Fagområde/ emne At regne i hovedet
Fagårsplan 12/13 Fag: Matematik Klasse: 3.A Lærer:LBJ Fagområde/ emne At regne i hovedet penge Periode Mål Eleverne skal: Lære at anvende simpel hovedregning gennem leg og praktiske anvende addition og
Omskrivningsregler. Frank Nasser. 10. december 2011
Omskrivningsregler Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion
DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves
(Positions) Talsystemer
(Positions) Talsystemer For IT studerende Hernik Kressner Indholdsfortegnelse Indledning...2 Positions talsystem - Generelt...3 For decimalsystemet gælder generelt:...4 Generelt for et posistionstalsystem
matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk
matematik excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel 1 1. udgave som E-bog 2007 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt
Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
Matematisk modellering og numeriske metoder. Lektion 15
Matematisk modellering og numeriske metoder Lektion 15 Morten Grud Rasmussen 1. november, 2013 1 Numerisk analyse [Bogens afsnit 19.1 side 788] 1.1 Grundlæggende numerik Groft sagt handler numerisk analyse
Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3
VisiRegn ideer 1 Talregning Inge B. Larsen [email protected] INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 Vejledning til Talregning
Systemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111
DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald
Kapitel 3 Lineære sammenhænge
Matematik C (må anvendes på Ørestad Gymnasium) Lineære sammenhænge Det sker tit, at man har flere variable, der beskriver en situation, og at der en sammenhæng mellem de variable. Enhver formel er faktisk
Komplekse tal. Mikkel Stouby Petersen 27. februar 2013
Komplekse tal Mikkel Stouby Petersen 27. februar 2013 1 Motivationen Historien om de komplekse tal er i virkeligheden historien om at fjerne forhindringerne og gøre det umulige muligt. For at se det, vil
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,
Basal statistik for sundhedsvidenskabelige forskere, efterår 2015 Udleveret 29. september, afleveres senest ved øvelserne i uge 44 (27.-30.
Hjemmeopgave Basal statistik for sundhedsvidenskabelige forskere, efterår 2015 Udleveret 29. september, afleveres senest ved øvelserne i uge 44 (27.-30. oktober) En undersøgelse blandt fødende kvinder
4. Snittets kædebrøksfremstilling og dets konvergenter
Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi
