Dagens tema. Flyt-tall. Koding. Tegnsett. Hvordan lagres de? Hvilke egenskaper har de? Hvordan regner man med dem?
|
|
- Aina Rønningen
- 7 år siden
- Visninger:
Transkript
1 Dagens tema Flyt-tall Koding Hvordan lagres de? Hvilke egenskaper har de? Hvordan regner man med dem? Koding av instruksjoner 64-bits kode Tegnsett Ulike typer tegnkoding Programmering i C
2 Hva er flyt-tall? Flyt-tall [REB&DRO H 2.4] Tall med desimalkomma kan skrives på mange måter: ,0 8, , De to siste ( ±M G E) er såkalte flyt-tall og består av Mantisse («significand») (M). Grunntall («radix») (G). Eksponent (E). Fortegn. Her lagrer man selve tallet og størrelsen hver for seg. Fordelen er at man alltid har like mange tellende sifre.
3 Hva er flyt-tall? Representasjon av mantissen En desimalbrøk: 3, har desimaler. En binærbrøk: 11, har binærer. Brøken tolkes slik: , Resultatet er = ,1406
4 Normalisering En normalisert mantisse er en binærbrøk med følgende egenskap: 1 M < G For binær representasjon innebærer dette at 1 M < 2 Det er altså alltid ett binært siffer foran binær-kommaet og det vil alltid være 1 (med mindre hele tallet er 0).
5 Elementene i et flyt-tall Eksponenten Eksponenten lagres normalt med et fast tillegg slik at vi alltid får et positivt tall. (Da kan vi bruke heltallssammenligning av positive flyt-tall.) Grunntallet Grunntallet er alltid 2. Blir ikke lagret.
6 32-bits flyt-tall Standarden IEEE 754 for 32-bits flyt-tall S Eksponent Mantisse Grunntallet er 2. S er fortegnet; 0 for +, 1 for. Eksponenten er på 8 bit og lagres med fast tillegg 127. Mantissen er helst normalisert og på 24 bit, men kun de 23 etter binærkommaet lagres.
7 Eksempler Hvorledes lagres 1,0? 1,0 10 = 1,0 2 som er normalisert. Eksponent er 0+127=127= Fortegnet er
8 Eksempler Hvordan lagres 0? Som spesialkonvensjon er 0 representert av kun 0-bit:
9 Eksempler Hvorledes lagres 12,8125? 12, = 1100, = 1, Eksponent er 3+127=130= Fortegnet er
10 Egenskaper Største tall er omtrent , (Eksponenten 0 er reservert for unormaliserte tall og tallet 0, eksponenten 255 for og NAN «not a number».)
11 Egenskaper Minste normaliserte positive tall er omtrent ,
12 Egenskaper Nøyaktighet Mantissen er på 24 bit, og , Dette gir 7 desimale sifre.
13 64-bits flyt-tall Standarden IEEE 754 for 64-bits flyt-tall S Eksponent Mantisse Endringer: Eksponenten er økt fra 8 til 11 bit. Lagres med fast tillegg Mantissen er økt fra 24 til 53 bit. Øverste bit lagres stadig ikke.
14 Egenskaper Største tall Det største tallet som kan lagres, finner vi utfra formelen 2 (211 2) = , Minste positive normaliserte tall = , Nøyaktighet Mantissen er på 53 bit, og , Dette gir nesten 16 desimale sifre.
15 Tap av presisjon Problemer med flyt-tall Siden flyt-tall oftest bare er en tilnærmet verdi, kan dette lett gi uventede feil, spesielt ved subtraksjon. #include <stdio.h> int main (void) { int i; } for (i = 1; i <= ; i *= 10) { float v1 = (1.0/i); printf("%f\n", (v1-1.1)*i); } return 0; ( i 1.1) i
16 Intels FDVI-feil Et annet eksempel I 1994 kom Intel Pentium. Den hadde en ny algoritme med tabelloppslag som skulle forbedre ytelsen til det 3-dobbelte for flyt-tallsdivisjon. Dessverre ble 5 av 1066 verdier i tabellen uteglemt, og dette ga av og til en feil i 6. desimal: Q: How many Pentium designers does it take to screw in a light bulb? A:
17 Generelt om x87 Å regne med flyt-tall X86 har en egen flyt-tallsprosessor x87: Den har egne registre ST(0) ST(7) som brukes som en stakk; de inneholder double-verdier. 1 ST(0) (ofte bare kalt ST) er toppen. Den har egne instruksjoner. Den har egne flagg C0 C5. Parametre overføres på den vanlige (heltalls)stakken. Returverdi fra funksjon legges i ST(0). 1 Egentlig lagrer de flyt-tall på et eget 80-bits format, men dette konverteres ved lesing fra og skriving til minnet.
18 Diverse operasjoner Konstanter fldz fld1 # Dytter 0.0 på stakken. # Dytter 1.0 på stakken. Lese fra minnet/stakken flds var # Dytter float var på stakken fldl var # Dytter double var på stakken fld %st(1) # Dytter kopi av ST(x) på stakken Skrive til minnet/stakken fsts var # Skriver ST(0) til var som float fstl var # Skriver ST(0) til var som double fst %st(4) # Kopierer ST(0) til ST(x) fstps var # Som instruksjonene over, fstpl var # men popper stakken etterpå. fstp %st(5) #
19 Diverse operasjoner Konvertering X87 kan konvertere mellom heltall og flyt-tall: filds ivar # Dytter short var på stakken. fildl ivar # Dytter long var på stakken. fildq ivar # Dytter long long var på stakken. fists ivar # Skriver ST(0) til var som short fistl ivar # Skriver ST(0) til var som long fistps ivar # Popper stakken til var som short fistpl ivar # Popper stakken til var som long fistpq ivar # Popper stakken til var som long long Fortegnsoperasjoner fabs fchs # Gjør ST(0) positivt # Snu fortegnet på ST(0)
20 Diverse operasjoner Aritmetiske operasjoner fadds var # ST(0) += float var faddl var # ST(0) += double var fadd %st(4) # ST(0) += ST(x) faddp # ST(1) = ST(0)+ST(1); popp fiadds ivar # ST(0) += short ivar fiaddl ivar # ST(0) += long ivar Tilsvarende operasjoner finnes for subtraksjon, multiplikasjon og divisjon: fsubs var # ST(0) -= float var fmuls var # ST(0) *= float var fdivs var # ST(0) /= float var
21 Diverse operasjoner Andre Det finnes dusinvis av andre instruksjoner, som fsqrt # ST(0) = sqrt(st(0)) fyl2xp1 # ST(1) = ST(1)*log2(ST(0)+1.0) ; popp
22 Instruksjoner Koding [REB&DRO H 3.1 2].globl add, res.extern n add: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax a_x: addl n,%eax jz a_x movl %eax,res popl ret.data res:.long 0 %ebp #include <stdio.h> extern int add (int v); extern int res; int n = 17; int main (void) { printf("add(1) = %d", add(1)); printf(" res = %d\n", res); return 0; }
23 Instruksjoner Vi lager kode av add.s: $ gcc -m32 -Wa,-a -c add.s >add.list GAS LISTING add.s page 1 1.globl add, res 2.extern n add: pushl %ebp E5 movl %esp,%ebp B4508 movl 8(%ebp),%eax a_x: addl n,%eax c 74F8 jz a_x e A movl %eax,res D popl %ebp C3 ret data res:.long 0 DEFINED SYMBOLS add.s:4 add.s:16 add.s:8 UNDEFINED SYMBOLS n.text: add.data: res.text: a_x
24 Instruksjoner Hver x86-instruksjon lagres i 1 15 byte. pushl %ebp = 55 pushl = 50+reg %ebp = 5 addl n,%eax = addl = 3 %eax / minne = = = addr(n)
25 Instruksjoner Ellers kan vi legge merke til: Et navn angir en adresse som kan være enten kode eller data. Navnet a_x er lokalt. Navnene add og res er lokalt definert men globalt kjent. Navnet n antas å være globalt kjent og definert i en annen kodefil. Adressen er foreløbig ukjent. Siden avstanden fra jz til a_x er kjent, er den angitt med relativ adresse (F8 16 = 8).
26 64-bits kode 64-bits kode [REB&DRO H 3.13] Omtrent alle pc-er i dag kjører en 64-bits kode x86-64 utviklet av AMD. Adresser er 64 bit. Flere registre %R8 %R15, og alle registrene i 64-bits utgave. Operasjoner har også 64-bits varianter (som addq). Funksjonskall har en annen protokoll (AMD64 ABI for Linux og Mac, Microsoft x64 for Windows).
27 64-bits kode %EAX %AX %RAX %AH %AL %RBX %BH %BL %RCX %CH %CL %RDX %DH %DL %RBP %RSP %RDI %RSI %EBP %BP %BPL %SPL %DIL %SIL %R8D %R8W %R8 %R8B %R9 %R9B %R10 %R10B %R11 %R11B %R12 %R12B %R13 %R13B %R14 %R14B %R15 %R15B
28 64-bits kode Funksjonskall (AMD64 ABI) De seks første parametrene ligger i %RDI, %RSI, %RDX, %RCX, %R8, %R9 Øvrige parametre ligger på stakken. Parameterregistrene samt %R10 og %R11 er frie registre, de øvrige er bundne. Returverdien skal ligge i %RAX.
29 64-bits kode Et eksempel.globl sum64 #include <stdio.h> # Navn: sum64. # Synopsis: Summerer en array. extern long sum64 (long a[], long n); # C-signatur: long sum64 (long a[], long n). # Registre: %RDI a (1. parameter) long data[] = { 123, 10000, , , # %RSI n (2. parameter) , }; sum64: movq $0,%rax # Initier summen movq %rsi,%rcx # og telleren. s64_l: # Gå i løkke og addq -8(%rdi,%rcx,8),%rax loop s64_l # summer. ret # Ferdig. int main (void) { int size = sizeof(data)/sizeof(data[0]); printf("svaret er %ld.\n", sum64(data,size)); } $ gcc -o test-sum64 test-sum64.c sum64.s $./test-sum64 Svaret er
30 Hva er et tegnsett? Tegnsett Et tegnsett er en tabell over hvilket tall som skal representere et gitt tegn, f eks A=65. Hvilke tegnsett er de vanligste? Hvorfor er tegnsettene blitt slik de er? Hvordan programmere med dem i C og assembler.
31 Hva er et tegnsett? Kommunikasjon over lang avstand Optisk telegraf Bauner Binær, men lite vokabular: 0 Alt OK 1 Fienden er her Brukte 110 koder: «31. Fienden jager dansk fartøy som trenger hjelp.» «104. Rugmel behøves til bakeriet i Kristiansund.»
32 Frem til ca 1960 Datamaskiner i urtiden Ingen kommunikasjon hver maskin var sin egen verden. I think there is a world market for maybe five computers. Thomas J Watson (IBM), 1943 (kanskje)
33 Ca bits tegnsett Etter hvert lærte datamaskinene å kommunisere med andre datamaskiner med magnetbånd hullbånd Det vokste frem diverse 5-, 6- og 7-bits tegnkoder; mest brukt var EBCDIC for IBM-maskiner ASCII (American standard code for information interchange) for de andre etter hvert
34 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US! " # $ % & ( ) * +,. / ASCII : ; < = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ DEL April 2016, DFL, Ifi/UiO Preget av fjernskrivere og hullbånd: Tegn som NUL, BEL, DEL Både CR og LF. o BS ^ ô u Store og små bokstaver u Fornuftig plassering d Kun for engelsk
35 Internasjonal «ASCII» Løsningen ble ISO 646 der noen tegn kunne byttes ut med nasjonale tegn. I Norge fikk vi NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US ISO646 60! " $ % & ( ) * +,. / : ; < = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Å ^ _ a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å DEL April 2016, DFL, Ifi/UiO
36 bits tegnsett 7-bits nasjonalt tegnsett var allikevel ikke nok: Anførselstegnene manglet. Andre nyttig tegn som µ, ± og ² var savnet. Overskriving en dårlig erstatning for é, ô etc. Dessuten trengtes ikke lenger øverste bit til paritetssjekk. Løsningen ISO8859 er en samling 8-bits tegnsett der første halvpart alltid er ASCII. I Vest-Europa fikk vi ISO (også kalt «Latin-1»).
37 ISO February 2016, DFL, Ifi/UiO! " # $ % & ( ) * +,. / : ; < = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ ª «± ² ³ µ ¹ º» ¼ ½ ¾ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
38 Men ennå var ikke alle fornøyd, spesielt ikke franskmennene: Ligaturene Œ og œ manglet. Stor Ÿ manglet. =C var oppfunnet. Løsningen ble ISO (også kalt «Latin-0» og «Latin-9»).
39 ISO April 2016, DFL, Ifi/UiO! " # $ % & ( ) * +,. / : ; < = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ Š š ª «± ² ³ Ž µ ž ¹ º» Œ œ Ÿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
40 2000- Multi-bits tegnsett ISO8859 var allikevel ikke nok: Du kan ikke se hvilken koding som er brukt i en tekstfil. Hva hvis du har flere språk i samme dokument (f eks norsk og samisk)? Hva med språk som kinesisk, japansk og koreansk?
41 2000- Unicode Løsningen er å lage en tegnkoding med alle verdens tegnsett: Unicode og ISO10646 er to ulike initiativ men like. 21 bit (drøyt tegn) er nok tegn er definert Alle levende språk er plassert blant de første
42 2000- UTF-8 For å spare plass kan Unicode-tegn lagres i UTF-8 der tegn med lavt nummer tar mindre plass: F 16 0xxxxxxx FF xxxxx 10xxxxxx FFFF xxxx 10xxxxxx 10xxxxxx FFFFF xxx 10xxxxxx 10xxxxxx 10xxxxxx ASCII-tegn forblir uendret i UTF-8. Første byte angir antall byte. 10xxxxxx er «fortsettelses-byte».
43 2000- Et eksempel =C har kode 20AC 16 = = UTF-8-representasjonen blir da på 3 byte: = E AC 16
44 2000- Hvordan er det nå med bruken av de ulike tegnkodingene?
45 Hvordan jobbe med tegnsett i C? 8-bits tegnsett i C I starten var det bygget inn i C at hvert tegn fikk plass i én byte. #include <stdio.h> #include <string.h> int main (void) { char str[100+1]; int i; } strcpy(str, "Særs «øde»!"); printf("\"%s\" har %d tegn\n", str, strlen(str));
46 Hvordan jobbe med tegnsett i C? Multi-bits tegnsett i C Fra og med C99 fikk de en ny datatype med «wide chars». #include <wchar.h> int main(void) { wchar_t w_str[100+1]; int i; } wcscpy(w_str, L"Særs «øde»!"); wprintf(l"\"%ls\" har %d tegn\n", w_str, wcslen(w_str));
47 Hva vet vi nå om Unicode i C? Konklusjon Det er programmererens ansvar å vite hvilken koding som brukes. Hvis vi vet det er snakk om 7- eller 8-bits tegnsett, kan vi bruke de opprinnelige mekanismene i C. Hvis vi skal kunne håndtere Unicode, må vi ty til wide chars. Men I noen versjoner av C er wchar_t på bare 16 bit! Hvis vi vet at vi bare bruker tegn fra levende språk (dvs med kode opptil FFFF 16 ), går det bra allikevel. Hvis ikke, må vi bruke en unsigned long, men da må vi skrive alle operasjonene selv. Alternativt kan man lagre tekstene internt som UTF-8 (og skrive operasjonene selv).
Dagens tema. Flyt-tall. Koding. 64-bits kode. Hvordan lagres de? Hvordan regner man med dem? Koding av instruksjoner Kodefiler Linking
Dagens tema Flyt-tall Hvordan lagres de? Hvordan regner man med dem? Koding Koding av instruksjoner Kodefiler Linking 64-bits kode Hva er flyt-tall? Flyt-tall [REB&DRO H 2.4] Tall med desimalkomma kan
DetaljerDagens tema. Flyt-tall. Koding. 64-bits kode. Hvordan lagres de? Hvordan regner man med dem? Koding av instruksjoner Kodefiler Linking
Dagens tema Flyt-tall Koding Hvordan lagres de? Hvordan regner man med dem? Koding av instruksjoner Kodefiler Linking 64-bits kode Hva er flyt-tall? Flyt-tall [REB&DRO H 2.4] Tall med desimalkomma kan
DetaljerDagens tema. Representasjon av mantissen En desimalbrøk: 1 1, INF1070 INF1070 INF1070 INF1070
Dagens tema Flyt tall Oppbygning IEEE 754 Programmering med flyt tall Selvmodifiserende kode Core War Flyt tall Tall med desimalkomma kan skrives på mange måter: 8 388 708,0 8,388708 0 6 8,39 0 6 De to
DetaljerDagens tema INF2270. Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.
Dagens tema Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.7) Pakking Instruksjoner for enkelt-bit Dag Langmyhr,Ifi,UiO: Forelesning 23. mars
DetaljerDagens tema. Representasjon av mantissen En desimalbrøk: 1 1, INF2270 INF2270 INF2270 INF2270
Dagens tema Flyt-tall (B&O H-boken 2.4, 3.4) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2..7) Skifting (B&O H-boken 3.5.3 4) Pakking Instruksjoner for enkelt-bit Flyt-tall
DetaljerDagens tema INF2270. Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken )
Dagens tema Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken 4.2.6.3) Bit fikling Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 23. april 2006
DetaljerDagens tema. Funksjonskall. Flyt-tall. Rekursive kall Lokale variable. Hvordan lagres de? Hvordan regner man med dem?
Dagens tema Funksjonskall Flyt-tall Rekursive kall Lokale variable Hvordan lagres de? Hvordan regner man med dem? En kort oppsummering Funksjonskall Kall og retur Instruksjonene call og ret er egentlig
DetaljerNotater: INF2270 Assembler
Notater: INF2270 Assembler Veronika Heimsbakk veronahe@student.matnat.uio.no 11. juni 2014 Innhold 1 Registere 2 2 Assembler-programmering 2 2.1 Instruksjoner........................... 3 2.2 Variabler..............................
DetaljerLæringsmål. INF1000: Forelesning 12. Hovedkilde. Kunne binærtall og heksadesimale tall og konvertering mellom ulike tallsystemer: Titallsystemet
INF1000: Forelesning 12 Digital representasjon av tall og tekst Læringsmål Kunne binærtall og heksadesimale tall og konvertering mellom ulike tallsystemer: Titallsystemet Det heksadesimale Det binære tallsystemet
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerTegn og tekst. Posisjonssystemer. Logaritmer en kort repetisjon. Bitposisjoner og bitmønstre. Kapittel August 2008
Posisjonssystemer 10 5 (100 000) 10 4 (10 000) 10 3 (1 000) 10 2 (100) 10 1 (10) 10 0 (1) Tegn og tekst \yvind og ]se N{rb}? 2 7 (128) 2 6 (64) 2 5 (32) 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) Kapittel
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerOppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerUnicode. Unikt vakkert eller unisont håpløst? En vandring gjennom tegnkodingens historie. Dag Lamgmyhr, Ifi/UiO Ark 1 av 23
Unicode Unikt vakkert eller unisont håpløst? En vandring gjennom tegnkodingens historie Dag Lamgmyhr, Ifi/UiO Ark 1 av 23 Hva er tegnkoding? Tegnkoding er bare å definere en tabell over hvilke tegn man
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerEn oppsummering (og litt som står igjen)
En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet
DetaljerDagens tema. Nyttige programmer Programmet make. Hvis én fil endres, hvilke filer må da kompileres på nytt?
Dagens tema Nyttige programmer Programmet make Flyt-tall Representasjon av flyt-tall Standarden IEEE 754 Systemkall i Unix Programmet make Det er mange praktiske problemer forbundet med programmering av
DetaljerHvordan en prosessor arbeider, del 1
Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program
DetaljerDen siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen
Den siste dagen Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen En oppsummering Oppsummering Pensum Læreboken til og med kapittel 7, kompendiet, forelesningene
DetaljerEn oppsummering. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen. Programmeringsoppgaver Flervalgsoppgaver
En oppsummering Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen Programmeringsoppgaver Flervalgsoppgaver Pensum Pensum Læreboken Forelesningene De obligatoriske oppgavene Ukeoppgavene
DetaljerDigital representasjon
Digital representasjon Alt er bit! Hvordan lagre tall tekst bilder lyd som bit i en datamaskin Hvordan telle binært? Binære tall Skal vi telle med bit ( og ), må vi telle binært. Dette gjøres egentlig
DetaljerPensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering
Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange
DetaljerDigital representasjon
Hva skal jeg snakke om i dag? Digital representasjon dag@ifi.uio.no Hvordan lagre tall tekst bilder lyd som bit i en datamaskin INF Digital representasjon, høsten 25 Hvordan telle binært? Binære tall Skal
DetaljerVektorer. Dagens tema. Deklarasjon. Bruk
Dagens tema Dagens tema Deklarasjon Vektorer Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Alle programmeringsspråk har mulighet til å definere en såkalte vektor (også
DetaljerDagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix
Dagens tema Nyttige programmer Programmet make Flyt-tall Representasjon av flyt-tall Standarden IEEE 754 Systemkall i Unix Ark 1 av 24 Programmet make Det er mange praktiske problemer forbundet med programmering
DetaljerDagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering
Dagens tema Vektorer (array er) Tekster (string er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 23. januar 2006 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til
DetaljerINF 1000 høsten 2011 Uke 11: 2. november
INF 1000 høsten 2011 Uke 11: 2. november Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Kursansvarlige: Arne Maus og Siri Moe Jensen 1 Info Obligene skal være
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerTall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS
Tall jfr. Cyganski & Orr 3..3, 3..5 se også http://courses.cs.vt.edu/~csonline/numbersystems/lessons/index.html Tekst ASCII, UNICODE XML, CSS Konverteringsrutiner Tall positive, negative heltall, flytende
DetaljerÅ løse eksamensoppgaver
Å løse eksamensoppgaver Programmeringsoppgaver Flervalgsoppgaver Prøveeksamen Eksamen Hva er hensikten med oppgavene? Programmeringsoppgaver Vil typisk være å skrive en funksjon eller oversette en funksjon
DetaljerINF 1000 høsten Innhold uke 11. Digital representasjon av tekster, tall, former,
Info INF 1000 høsten 2011 Uke 11: 2. november Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Kursansvarlige: Arne Maus og Siri Moe Jensen Obligene skal være kommentert,
DetaljerIN 147 Program og maskinvare. Vanlige feil ved bruk av pekere Feilsøking Debuggere
Dagens tema Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne testutskrifter Flyt-tall (P&H: 4.8) Representasjon av flyt-tall Standarden IEEE 754 MIPS-operasjoner på flyt-tall
DetaljerDagens tema INF1070. Vektorer (array-er) Tekster (string-er) Adresser og pekere. Dynamisk allokering
Dagens tema Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 17. januar 2005 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til
DetaljerForelesning 15.11. Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B
TDT4160 Datamaskiner Grunnkurs Forelesning 15.11 Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B Dagens tema Datatyper (5.2) Heltall Ikke-numeriske datatyper Instruksjonsformat (5.3) Antall
DetaljerTall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall
Tall To måter å representere tall Som binær tekst Eksempel: '' i ISO 889-x og Unicode UTF-8 er U+ U+, altså Brukes eksempelvis ved innlesing og utskrift, i XML-dokumenter og i programmeringsspråket COBOL
DetaljerDigital representasjon
Hva skal jeg snakke om i dag? Digital representasjon dag@ifi.uio.no Hvordan lagre tall tekst bilder lyd som bit i en datamaskin Hvordan telle binært? Binære tall For å bruke bit (0 og 1) som tall, må vi
DetaljerForhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema
Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800-tallet
DetaljerDatamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?
Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? Intel-prosessoren Enkel assemblerprogrammering Dag
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF227 Oppgave 9 Omid Mirmotahari Oppgave 6 Dag Langmyhr. juni 24 Eksamen INF227 Sensorveiledning Oppgave 2 Kretsforenkling Hva er funksjonsuttrykket for Output gitt av A
DetaljerTDT4105/TDT4110 Informasjonsteknologi grunnkurs:
1 TDT4105/TDT4110 Informasjonsteknologi grunnkurs: Uke 39 Digital representasjon, del 1 - Digital representasjon - Tekst og tall - positive, negative, komma? Alf Inge Wang alfw@idi.ntnu.no Bidragsytere
DetaljerTDT4105/TDT4110 Informasjonsteknologi grunnkurs:
1 TDT4105/TDT4110 Informasjonsteknologi grunnkurs: Uke 37 Digital representasjon, del 1 - Digital representasjon - Tekst og tall - positive, negative, komma? Rune Sætre satre@idi.ntnu.no Slidepakke forberedt
DetaljerForhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema INF1070 INF1070 INF1070
Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800
DetaljerDatamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?
Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? x86 prosessoren Enkel assemblerprogrammering Dag Langmyhr,Ifi,UiO:
DetaljerDatamaskinen LC-2. Dagens tema. Tall i datamaskiner Hvorfor kan LC-2 lagre tall i intervallet ? Hvorfor er det akkurat celler i lageret?
Dagens tema Datamaskinen LC-2 En kort repetisjon Binære tall Litt om tallsystemer generelt Binære tall Heksadesimale og oktale tall Programmering av LC-2 Maskinkode Assemblerkode Kjøring av LC-2-programmer
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
DetaljerDagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall
Dagens tema Datamaskinen LC-2 En kort repetisjon Binære tall Litt om tallsystemer generelt Binære tall Heksadesimale og oktale tall Programmering av LC-2 Maskinkode Assemblerkode Kjøring av LC-2-programmer
DetaljerTegn og tekst. \yvind og ]se N{rb}? Læreboka kapittel August Institutt for informatikk 29. august 2007.
Tegn og tekst \yvind og ]se N{rb}? Læreboka kapittel 2 29. ugust 2007 IN1040-tekst-1 Problemstilling Utgangspunkt: Hvert tegn i teksten representeres av et unikt bitmønster. Eksempel: Med E = 01000101,
Detaljerif (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2012 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 10 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Et eksempel til (med diverse forklaringer) Representasjon av tegn og logiske verdier Vektorer Statusverdi Innhenting av definisjoner Inkrementering og dekrementering av variable for-setningen
DetaljerDagens tema Programmering av x86 Flytting av data Endring av størrelse
Dagens tema Programmering av x86 Flytting av data Endring av størrelse Aritmeriske operasjoner Flagg Maskeoperasjoner Hopp Tester Stakken Rutinekall Kall og retur Frie og opptatte registre Dokumentasjon
DetaljerDagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25
Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.
DetaljerIN 147 Program og maskinvare
Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del 0
DetaljerDagens tema: INF2100. Utvidelser av Minila array-er. tegn og tekster. Flass- og Flokkode. prosedyrer. Prosjektet struktur. feilhåndtering.
Dagens tema: Utvidelser av Minila array-er tegn og tekster Flass- og Flokkode array-er prosedyrer Prosjektet struktur feilhåndtering del 0 Dag Langmyhr,Ifi,UiO: Forelesning 6. september 2005 Ark 1 av 19
DetaljerMinneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er
Dagens tema: Minnet Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er 0xfffffffc Variable Stakk Lister Noen nyttige
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del-0
DetaljerHusk å registrer deg på emnets hjemmeside!
IT Informatikk basisfag 28/8 Husk å registrer deg på emnets hjemmeside! http://it.idi.ntnu.no Gikk du glipp av øving? Gjør øving og få den godkjent på datasal av din lærass! Forrige gang: HTML Merkelapper
DetaljerProgrammeringsspråket C
Programmeringsspråket C Programmeringsspråket C Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard i 1988;
DetaljerProgrammeringsspråket C
Programmeringsspråket C Programmeringsspråket C Laget til implementasjon av Unix ved AT&Ts Bell labs i Palo Alto 1969 73. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard
DetaljerReferansehåndbok for strekkode
Referansehåndbok for strekkode Version 0 NOR 1 Introduksjon 1 Oversikt 1 1 Denne referansehåndboken gir informasjon for utskrift av strekkoder som bruker kontrollkommandoer sendt direkte til en Brother-utskriftsenhet.
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF2270 Omid Mirmotahari (oppgave 1 4) Dag Langmyhr (oppgave 5 6) 14. juni 2012 Eksamen inf2270 V12 - fasit 1) (5%) Forkort følgende uttrykk med karnaugh diagram zw xy 00
DetaljerDagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070
Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2270 Datamaskinarkitektur Eksamensdag: 11. juni 2009 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 10 sider. Vedlegg: Ingen
DetaljerINF1020 Algoritmer og datastrukturer GRAFER
GRAFER Dagens plan: Avsluttende om grådige algoritmer Huffman-koding (Kapittel 10.1.2) Dynamisk programmering Floyds algoritme for korteste vei alle-til-alle (Kapittel 10.3.4) Ark 1 av 16 Forelesning 22.11.2004
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: Eksamensdag: 12. juni 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 11 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerIntro Rask kode x86-op Optimalisering Inline-kode Konklusjon
Dagens tema Dagens tema Raskere kode Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man raskere kode? Blanding av C og assemblerkode Er hastighet så viktig? Når er eksekveringshastighet
DetaljerVelkommen til INF2100. Bakgrunnen for INF2100. Hva gjør en kompilator? Prosjektet. Jeg er Dag Langmyhr
Kursopplegg Velkommen til INF2100 en en for INF2100 Jeg er (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering
DetaljerDRIFTSANALYSER 2012/2013 FORELØBIGE RESULTATER
DRIFTSANALYSER FORELØBIGE RESULTATER A B C D E F C G H E I J K L B K F G K! " # $ %! & ' ( ) ( * + #, -! &!. & ) /! ( / ) - 0 1 - ' #.! ( ( * ' 1 2 ( (! 3 4 " (! - 5 6!! 7 % ' # 7 4 " (! - 1 2 # 7 4 8-1
DetaljerDagens tema: Enda mer MIPS maskinkode
Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark
DetaljerReelle tall på datamaskin
Reelle tall på datamaskin Knut Mørken 5. september 2007 1 Innledning Tirsdag 4/9 var tema for forelesningen hvordan reelle tall representeres på datamaskin og noen konsekvenser av dette, særlig med tanke
DetaljerDagens tema INF1070. Makroer. Sanntidsprogrammering. Avbrudd. Bruker- og supermodus. Blanding av C og assemblerkode. Selvmodifiserende kode
Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 2. mai 2005 Ark 1 av 20 Makroer Ofte gjentar
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 13. juni 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 9 sider. Vedlegg: Tillatte hjelpemidler: INF2270 Datamaskinarkitektur
DetaljerDagens tema. Minnestrukturen Grovt sett ser minnet for hver process slik ut: Flytting av data. Programmering av x86
Dagens tema Programmering av x86 Minnestrukturen Flytting av data Endring av størrelse Aritmeriske operasjoner Flagg Maskeoperasjoner Hopp Tester Stakken Minnestrukturen Grovt sett ser minnet for hver
DetaljerDagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding
Grafer Dagens plan INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Avsluttende om grådige algoritmer (kap. 10.1.2) Dynamisk programmering Floyds algoritme
DetaljerDel 4 Noen spesielle C-elementer
Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include
DetaljerProgrammeringsspråket C Del 2
Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005
DetaljerDagens tema. Raskere kode [REB&DRO H kap 5]
Dagens tema Dagens tema Raskere kode [REB&DRO H kap 5] Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man raskere kode? Blanding av C og assemblerkode Er hastighet så viktig? Når
DetaljerDagens tema. Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det lønne seg å definere en makro:
Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 12 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering av fremmøte)
DetaljerFlyttalls aritmetikk. I datamaskinen er alle tall representert i flyttalls aritmetikk.
Flyttalls aritmetikk I datamaskinen er alle tall representert i flyttalls aritmetikk. 1/21 Det betyr at desimal punktet ( float, floating point arithmetic på engelsk) beveger seg slik at store og små tall
DetaljerDagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler
Dagens tema Dagens tema: Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler Charles Babbage Datamaskinenes historie Menneskene har alltid prøvd
DetaljerProgrammeringsspråket C Del 2
Programmeringsspråket C Del 2 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 8/25/10 inf1060
DetaljerProgrammeringsspråket C Del 2
Et eksempel Programmeringsspråket C Del 2 Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no inf1060 1 inf1060 2 Forklaring:
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering av fremmøte)
DetaljerOffentlig utvalg for punktskrift, OUP Norsk standard for 8-punktskrift punktskrift 24. oktober 2004 sist endret
Offentlig utvalg for punktskrift, OUP Norsk standard for 8-punktskrift punktskrift 24. oktober 2004 sist endret 19.10.2007 Desimal Hex Beskrivelse Tegnets utseende Punktkode 0 0000 4578
DetaljerProgrammeringsspråket C Del 2. Michael Welzl
Programmeringsspråket C Del 2 Michael Welzl 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det nedover til 0 $> gcc countdown.c -o countdown $>./countdown ===== Countdown
DetaljerTall. Ulike klasser tall. Læringsmål tall. To måter å representere tall. De naturlige tallene: N = { 1, 2, 3, }
1111 Tall 0000 0001 De naturlige tallene: N = { 1, 2, 3, } Ulike klasser tall 1101 1110-3 -2-1 0 1 2 3 0010 0011 De hele tallene: Z = {, -2, -1, 0, 1, 2, } 1100-4 4 0100 1011 1010-5 -6-7 -8 7 6 5 0110
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 11: Huffman-koding & Dynamisk programmering (Ifi, UiO) INF2220 H2015, forelesning 11 1 / 32 Dagens
DetaljerOversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays
Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson
DetaljerDel 2 Tabeller, arrays, strenger
Del 2 Tabeller, arrays, strenger 1 RR 2016 Tabeller Variabel som kan holde mange verdier. Styrer bruken med indeks. Det er ingen indekskontroll i C. int tab[5] = {2, 4, 6, 8, 10}; tab[4] = 12; int tab[100]
DetaljerProgrammering av x86. Minnestrukturen i en prosess Flytting av data. Skifting og rotasjoner Hopp. Stakken Rutinekall. Aritmeriske regneoperasjoner
Programmering av x86 Minnestrukturen i en prosess Flytting av data Endring av størrelse Aritmeriske regneoperasjoner Flagg Maskeoperasjoner Skifting og rotasjoner Hopp Tester Stakken Rutinekall Kall og
Detaljer