Tall. Ulike klasser tall. Læringsmål tall. To måter å representere tall. De naturlige tallene: N = { 1, 2, 3, }

Like dokumenter
Tall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall

Tall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS

Læringsmål tall. Kunne prefikser for store tall i. det binære tallsystemet. Forstå ulike prinsipper for representasjon av.

Læringsmål tall. Prefikser for potenser av Store tall. Kunne prefikser for store tall i. det binære tallsystemet

INF1040 Digital representasjon TALL

TALL. Titallsystemet et posisjonssystem. Konvertering: Titallsystemet binære tall. Det binære tallsystemet. Alternativ 1.

Tall. Tallsystemer. Posisjonstallsystemer. Veiing med skålvekt titallsystemet 123 = = 7B 16. Lærebokas kapittel 6

INF1040 Oppgavesett 7: Tall og geometrier

INF1040 løsningsforslag oppgavesett 7: Tall og geometrier

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Husk å registrer deg på emnets hjemmeside!

Læringsmål. INF1000: Forelesning 12. Hovedkilde. Kunne binærtall og heksadesimale tall og konvertering mellom ulike tallsystemer: Titallsystemet

Representasjon av tall på datamaskin Kort innføring for MAT-INF1100L

Reelle tall på datamaskin

UNIVERSITETET I OSLO

Alle hele tall g > 1 kan være grunntall i et tallsystem.

Resymé: I denne leksjonen blir de viktigste tallsystemer presentert. Det gjelder det binære, heksadesimale og desimale tallsystem.

Kapittel 2 TALL. Tall er kanskje mer enn du tror

1.8 Binære tall EKSEMPEL

Teori og oppgaver om 2-komplement

Flyttalls aritmetikk. I datamaskinen er alle tall representert i flyttalls aritmetikk.

Tallsystemer. Tallene x, y, z og u er gitt ved x = 2, y = 2, z = 4 og u = 2. Dermed blir =

Alle hele tall g > 1 kan være grunntall i et tallsystem.

INF1040 Digital representasjon Oppsummering

INF1040 Digital representasjon

Oppsummering 2008 del 1

Oppsummering 2008 del 1

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Tallsystemer. Tallene x, y, z og u er gitt ved x = 2, y = 2, z = 4 og u = 2. Dermed blir =

Modulo-regning. hvis a og b ikke er kongruente modulo m.

MAT1030 Forelesning 3

I Kapittel 2 lærte vi om tall i alternative tallsystemer, i hovedsak om binære tall, oktale tall og heksadesimale tall.

Potenser og tallsystemer

Kapittel 3: Litt om representasjon av tall

Potenser og tallsystemer

INF 1000 høsten 2011 Uke 11: 2. november

Valg av kontaktpersoner/tillitsvalgte. MAT1030 Diskret matematikk. Oppsummering av kapittel 2. Representasjon av hele tall

KAPITTEL 2 Tall og datamaskiner

INF 1000 høsten Innhold uke 11. Digital representasjon av tekster, tall, former,

Digital representasjon

Konvertering mellom tallsystemer

Memory Access) Figure: DMA kommuniserer med disk-controlleren og sørger for at det OS ønsker blir kopiert mellom harddisken og internminnet.

Rekker (eng: series, summations)

INF1040 Oppgavesett 1: Tallsystemer og binærtall

Diskret matematikk tirsdag 13. oktober 2015

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

MAT1030 Plenumsregning 3

1.8 Binære tal DØME. Vi skal no lære å omsetje tal mellom totalssystemet og titalssystemet.

Digital representasjon

MAT1030 Diskret matematikk

Kompendium til TOD065 - Diskret matematisk programmering

KAPITTEL 2 Tall og datamaskiner

Løsningsforslag, Ukeoppgaver 9 INF2310, våren kompresjon og koding del I

Del 1 En oversikt over C-programmering

Løsningsforslag, Ukeoppgaver 9 INF2310, våren kompresjon og koding del I

Rekker (eng: series, summations)

Forside. MAT INF 1100 Modellering og beregninger. Mandag 9. oktober 2017 kl Vedlegg (deles ut): formelark. Tillatte hjelpemidler: ingen

UNIVERSITETET I OSLO

NY EKSAMEN Emnekode: ITD13012

INF1040 Digital representasjon

IT1101 Informatikk basisfag 4/9. Praktisk. Oppgave: tegn kretsdiagram. Fra sist. Representasjon av informasjon binært. Ny oppgave

UNIVERSITETET I OSLO

Mer om representasjon av tall

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

INF1400 Kap 1. Digital representasjon og digitale porter

Posisjonsystemet FRA A TIL Å

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

Leksjon 2. Setninger og uttrykk

INF1040 Oppgavesett 6: Lagring og overføring av data

Leksjon 2. Setninger og uttrykk

Norsk informatikkolympiade runde

Kapittel 3: Litt om representasjon av tall

Digital representasjon

INF1040 Digital representasjon

En oppsummering (og litt som står igjen)

ITPE2400/DATS2400: Datamaskinarkitektur

UNIVERSITETET I OSLO

IN 147 Program og maskinvare

1 Tall og algebra i praksis

Kapittel 8. Potensregning og tall på standardform

MAT-INF 1100 Modellering og beregninger. Fredag 12. oktober 2018 kl Vedlegg (deles ut): formelark. Tillatte hjelpemidler: ingen

Digital representasjon

Eksamen i INF 1040, 5. desember Det matematisk-naturvitenskapelige fakultet. Ditt kandidatnr: DETTE ER ET LØSNINGSFORSLAG

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Hashfunksjoner. Hashfunksjonen beregner en indeks i hashtabellen basert på nøkkelverdien som vi søker etter

Dagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix

En harddisk består av et lite antall plater av et magnetisk materiale.

UNIVERSITETET I OSLO

TDT4110 IT Grunnkurs Høst 2015

Full fart med funksjoner, prosent og potens Vg1T, TY, P, PY og Vg2P 75 minutter

UNIVERSITETET I OSLO

Løsning av øvingsoppgaver, INF2310, 2005, kompresjon og koding

UNIVERSITETET I OSLO

kl 12:00 - mandag 31. mars 2008 Odde: uke 11 (12. mars 2008) Utlevert: fredag 7. mars 2008 Like: uke 13 (26. mars 2008) Regneøving 4

Transkript:

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 0101 De rasjonale tallene: Q = alle tall som kan skrives som en brøk 1001 1000 0111 Kapittel 7.1-7.2, 7.4-7.8, Appendiks B De reelle tallene: R = alle tallene på tallinjen INF1040-Binærtall-1 INF1040-Binærtall-2 Læringsmål tall Forstå ulike prinsipper for representasjon av naturlige tall og 0 hele tall, inklusive de negative reelle tall Kunne prefikser for store tall i titallsystemet det binære tallsystemet To måter å representere tall Som tekst Eksempel: '23' i ISO 8859-x og Unicode UTF-8 er U+32 U+33, altså 0011 0010 0011 0011 2 Brukes eksempelvis ved innlesing og utskrift, i XML-dokumenter og i programmeringsspråket COBOL Som ulike former for binære tall naturlig binær Gray-kode Toerkomplement Flyttall Eksempel naturlig binær: 23 = 10111 2 Brukes som internt format ved lagring og beregninger INF1040-Binærtall-3 INF1040-Binærtall-4

Naturlige binærtall Bygger på posisjonssystemet: Tekst ASCII, UNICODE XML Konverteringsrutiner Binære tall Naturlig, Gray-kode, toer-komplement, flyttall Hvis n er antall siffer i et binært tall x og s i sifferet i i te posisjon forfra, er den generelle formelen for verdien av tallet n x = s k *10 2 (n-k) k=1 Eksempel: 10101 2 = (1 * 2 4 ) + (0 * 2 3 ) + (1 * 2 2 ) + (0 * 2 1 ) + (1 * 2 0 ) = 16 + 4 + 1 = 21 INF1040-Binærtall-5 INF1040-Binærtall-6 Binærtall med binærpunkt Bygger på posisjonssystemet: Hvis n er antall siffer i et binært tall x, h er antall siffer foran binærpunktet og s i sifferet i i te posisjon forfra, er den generelle formelen for verdien av tallet n x = s k *10 2 (h-k) k=1 Eksempel: 101.01 2 = (1 * 2 2 ) + (0 * 2 1 ) + (1 * 2 0 ) + (0 * 2-1 ) + (1 * 2-2 ) = 4 + 1 + 0.25 = 5.25 som er ¼ av 10101 2 = 21 (se forrige lysark) Viktig i forbindelse med flyttall (se senere) Husk at s -p = 1/s p INF1040-Binærtall-7 Gray-kode Gray-kode Binært tallsystem Titallsystem 0000 0000 0 0001 0001 1 0011 0010 2 0010 0011 3 0110 0100 4 0111 0101 5 0101 0110 6 0100 0111 7 1100 1000 8 1101 1001 9 1111 1010 10 1110 1011 11 1010 1100 12 1011 1101 13 1001 1110 14 1000 1111 15 Et ikke-posisjonssystem der representasjonen av et tall og det neste tallet i tallrekken atskiller seg i nøyaktig én bit INF1040-Binærtall-8

Hvordan bygge opp en Gray-kode Konvertering binært tallsystem Gray-kode Binary reflected code Fra det binære tallsystemet til Gray-kode 1 1 0 1 Fra Gray-kode til det binære tallsystemet 1 0 1 1 1 0 1 1 : exclusive or -operasjonen to like biter gir 0, to ulike biter gir 1 1 1 0 1 Huskeregel: I begge konverteringer XOR es med forrige bit i det binære tallsystemet! INF1040-Binærtall-9 INF1040-Binærtall-10 Repetisjon: Addisjon av binærtall Regneregler: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 og 1 i mente Eksempel: 5 = 101 2 7 = 111 2 1100 2 = 12 Men det er en ting vi ikke har tenkt på datamaskiner regner ikke med et uendelig antall biter! Overflyt ("overflow") I en datamaskin regner vi som regel med tallrepresentasjoner med et fastlagt antall biter (vanligvis 8, 16, 24, 32 eller 64) Dersom en aritmetisk operasjon fører til at resultatet faller utenfor det mulige tallområdet, har vi en overflyt ("overflow") Regneenheten sender da et signal til den omkringliggende programvaren slik at den kan ta seg av situasjonen (feilmelding) Eksempel forutsetter 8 biters tallrepresentasjon mente -> overflyt 1 213 = 1 1 0 1 0 1 0 1 2 106 = 0 1 1 0 1 0 1 0 2 8 biter begrenser mulig tallområde til [0,,255], men 213 + 106 = 319 1 0 0 1 1 1 1 1 1 2 INF1040-Binærtall-11 INF1040-Binærtall-12

Negative tall "Klokkearitmetikk" Mange representasjonsmuligheter, men stor fordel om vi kan bruke samme regneelektronikk som for positive tall Derfor representeres gjerne negative heltall som komplementer Vi ser først på litt "klokkearitmetikk" (modulo-operasjoner) Deretter lager vi oss en 16-timers (4 biters) klokke, og blir enige om at tallene på venstre del av skiven (som alle starter med en binær 1) skal tolkes som negative Modulo-operatoren utføres ganske enkelt ved å se bort fra overflyten 9 10 8 11 7 12 6 1 5 2 4 3 Hvis klokka er 10, hvor mye er den om 5 timer? Jo: (10+5)%12 = 3 %: Modulo-operatoren (rest av heltallsdivisjon) INF1040-Binærtall-13 INF1040-Binærtall-14 1101 "Klokkearitmetikk" toer-komplement 1110-3 1111-2 -1 0000 0 1 0001 2 0010 3 Forutsetter 4-biters tallrepresentasjon, gir verdiområdet [ 8,,7] 0011 Negative tall som toer-komplement 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Naturlig binærsystem 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1100 1011-4 1010-5 -6 1001-7 -8 1000 7 6 0111 5 4 0110 0100 0101 Hvis klokka er 2, hvor mye er den om 5 timer? Jo: (1110+0101)%10000 INF1040-Binærtall-15 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111-8 -7-6 -5-4 -3-2 -1 0 1 2 3 4 5 6 7 Tenk deg en digital teller som står på 0. Drei den i negativ retning. Første nye tall som dukker opp er komplementet til 1, dvs. 99999. Toer-komplement INF1040-Binærtall-16

Toer-komplementet Det binære toer-komplementet er lett å beregne: Ta et binært tall Erstatt alle 0 med 1, alle 1 med 0 (legg merke til at vi må vite antall biter for tallrepresentasjonen) Legg til 1 Eksempel: 21 = 0001 0101 2 (forutsetter 8 biter) toer-komplementet er 1110 1010 2 + 1 = 1110 1011 2, dvs. 14 * 16 + 11 * 1 = 235 Regne ut 53 + ( 21): 0011 0101 2 + 1110 1011 2 = 1 0010 0000 2 = 2 * 16 = 32 Regning med toer-komplement Hvis vi legger sammen to tall og får en ekstra mente til venstre, kan den bare kastes. Eksempel (forutsetter 4 biters representasjon): -1 + 4: Men: Hvis de to mentene lengst til venstre er ulike, har vi overflyt og ugyldig svar. Eksempler (forutsetter 4 biters representasjon): 3 + 5: -8-1: Hva er det binære toer-komplementet til 1? INF1040-Binærtall-17 INF1040-Binærtall-18 Noen observasjoner om toer-komplement Positive binære tall begynner på 0 (mest signifikante bit, MSB =0) Negative binære tall begynner på 1 (mest signifikante bit, MSB =1) Dersom vi adderer to tall og får mente som renner over i forkant, skal menten bare kastes dette er en konsekvens av trikset med toer-komplement- representasjon Men dersom de to menteposisjonene lengst til venstre (inkludert menten som renner over ) er ulike, er vi kommet utenfor det tallområdet som kan representeres. Vi har altså en overflyt! Dersom vi legger sammen et binært tall med dets toer-komplement, får vi 0 (selvfølgelig ) toer-komplementet av toer-komplementet av et tall er tallet Gjelder ikke for det siste negative tallet ( the weird number ) overflyt! mente 0100 4 0100 5 0101 1001 INF1040-Binærtall-19 En annen vri tall med "bias" Et alternativ er å legge til en konstant bias til alle tallene. Med 8 bitposisjoner og bias 128 kan tallene fra -128 til 127 representeres ved hjelp av tallene fra 0 til 255. Med 8 bitposisjoner og bias 127 kan tallene fra -127 til 128 representeres ved hjelp av tallene fra 0 til 255 Dette prinsippet brukes for eksponenten i flytende tall, se senere... Eksempler bias 128: 53: -21: INF1040-Binærtall-20

Heltallstyper i Java datatype antall biter minste tall største tall byte 8 128 127 short 16 32768 32767 int 32 2147483648 2147 483647 long 64 9223372036854775808 9223372036854775807 Legg merke til at største tall er en mindre enn minste tall med motsatt fortegn. Tallet 0 tar den første positive plassen! Regning med "bias" Ved addisjon kommer bias med to ganger, så vi må trekke den fra igjen (en gang) Eksempel (forutsetter 8 biters tallrepresentasjon og bias 128): Vi skal addere 53 + ( 21) 53 bias 128 = 181 = 1011 0101 2-21 bias 128 = 107 = 0110 1011 2 181 + 107 128 = 1011 0101 2 + 0110 1011 2-1000 0000 2 = 1010 0000 2 = 10 * 16 = 160 = 32 bias 128 INF1040-Binærtall-21 INF1040-Binærtall-22 Reelle tall Flyttall I titallsystemet kan et tall skrives på formen mantisse * 10 eksponent Eksempler: 0.5 * 10 2 = 0.5 * 100 = 50 0.5 * 10 0 = 0.5 * 1 = 0.5 0.5 * 10-1 = 0.5 * 0.1 = 0.05-5 * 10-1 = -0.5 * 0.1 = -0.05 Tilsvarende kan vi skrive binære flyttall på formen mantisse * 10 2 eksponent der mantisse og eksponent er gitt som binære tall. Eksempel: 101 2 * 10 2 112 = 5 * 2 3 = 5 * 8 = 40 Et binært flyttall er basert på mantisse * 10 2 eksponent Vi må representere mantisse og eksponent. Begge må kunne være både positive og negative (og null). Grunntallet 10 2 = 2 antar vi som gitt! Mange representasjonsmuligheter, verden har imidlertid standardisert på IEEE 754 To varianter: Binære flyttall 32-biter representasjon (single precision, datatype real ) 64-biter representasjon (double precision, datatype double ) se http://steve.hollasch.net/cgindex/coding/ieeefloat.html INF1040-Binærtall-23 INF1040-Binærtall-24

Single precision Double precision Binære flyttall IEEE 754 fortegnsbit 1 8 23 eksponent med bias 127 mantisse 1. Ikke-lagret ledende 1 med antatt binærpunkt fortegnsbit eksponent med bias 1023 mantisse 1 11 52 Vi legger en bias til eksponenten slik at representasjonen aldri er negativ! IEEE 754: Spesielle verdier Null: Både eksponent og mantisse er 0 Uendelig: Eksponent med bare 1ere, mantisse med bare 0ere Not A Number: Eksponent med bare 1ere, mantisse 0 Mantisse som starter med 1 : Resultat av en udefinert operasjon (eksempel: 0/0) Mantisse som starter med 0: Resultat av en ulovlig operasjon (eksempel: N/0) 1. Ikke-lagret ledende 1 med antatt binærpunkt Mantissen er normalisert, slik at første bit alltid er 1. Derfor sparer vi plass ved ikke å lagre denne biten! INF1040-Binærtall-25 INF1040-Binærtall-26 Flyttallsområder i IEEE 754 (og i Java) datatype antall biter minste positive tall største positive tall real/float 32 2 126 10 44,85 (2-2 23 )* 2 127 10 38,53 double 64 2 1022 10 323,3 (2-2 52 )* 2 1023 10 308,3 og tilsvarende for negative tall Om presisjon og nøyaktighet Presisjon ( precision ): Et uttrykk for avviket i verdi mellom det virkelige tallet og representasjonen. Heltall er alltid presist representert innenfor tallområdet. Presisjonen for flyttall varierer: Jo mindre tall, jo høyere presisjon! Jo flere biter, jo høyere presisjon. største negative tall minste negative tall 0 minste positive tall største positive tall Nøyaktighet ( accuracy ): Hvor nøyaktig vi ønsker (eller greier) å måle eller observere en størrelse. overflyt-område underflyt-område overflyt-område Siden mange tall ikke kan representeres eksakt, må de snappes til nærmeste representerbare tall. Dette kalles diskretisering. INF1040-Binærtall-27 INF1040-Binærtall-28

Store tall For å håndtere store tall i titallsystemet bruker vi en-bokstavs SI-symboler som betegner potenser av 1000 k (kilo) = 10 3, M (mega) = 10 6, G (giga) = 10 9, T (tera) = 10 12, P (peta) = 10 15, E (exa) = 10 18, Z (zeta) = 10 21, Y (yotta) = 10 24 kan Mona Gå Til Patolog Eller Zoolog-Yrket? Unntaksvis bruker vi liten k for 1 000, fordi K i SI-systemet er brukt opp som måleenhet for temperatur. Anta at vi har et digitalt bilde med 1 024 x 1 024 piksler (bildeelementer) La hvert piksel representeres med 1 byte Bildets størrelse blir oftest angitt til 1 MB Men bildet er jo 1 024 x 1 024 x 1 byte = 1 048 576 byte 1.05 MB Denne feilen øker jo større tall vi snakker om! Prefikser for potenser av 1 024 SI-prefiksene k, M, G osv er desimale enheter og har ingen mening som potenser av 1 024. IEC publiserte i 1999 en standard for potenser av 1 024. Navnene er satt sammen av de to første bokstavene i SIprefiksene pluss bi for binær. Navn Symbol Potens av 2 og verdi i titallsystemet kibi Ki 2 10 = 1 024 mebi Mi 2 20 = 1 048 576 gibi Gi 2 30 = 1 073 741 824 tebi Ti 2 40 = 1 099 511 627 776 pebi Pi 2 50 = 1 125 899 906 842 624 exbi Ei 2 60 = 1 152 921 504 606 846 976 zebi Zi 2 70 = 1 180 591 620 717 411 303 424 yobi Yi 2 80 = 1 208 925 819 614 629 174 706 176 Se Appendiks B i læreboka! INF1040-Binærtall-29 INF1040-Binærtall-30 Noen konvensjoner det er nyttig å kjenne Størrelsen på RAM, ROM eller flash-minner gis som regel i binære enheter. Kapasiteten til harddisker og lagre som betraktes som en stor disk oppgis i desimale enheter. Sektorstørrelsene på en disk gis nesten alltid i toerpotenser, siden de mapper direkte til RAM. Det finnes en forvirrende hybrid, der en megabyte betyr 1000 kilobytes a 1024 byte. En 1.44 MB diskett er verken 1.44 2 20 byte eller 1.44 10 6 byte, men 1.44 1 000 1 024 bytes (som er ca 1.406 MiB, eller 1.475 MB). Dette kan også gjelde disk-lignende flashminner (toerpotens multipler av desimale megabyte!) Kapasiteten til en CD er alltid gitt i binære enheter. En 700 MB CD har en nominell kapasitet på 700 MiB. Kapasiteten til en DVD er gitt i desimale enheter. En 4,7 GB DVD har en nominell kapasitet på 4,38 GiB. Overføringskapasitet måles i bps (biter per sekund) eller Bps (byte per sekund), og angiss alltid i titallsystemet, med SI-prefikser Eksempel: kbps (10 3 byte per sekund), MBps (10 6 byte per sekund), osv Tall kan representeres med tekst Tall Oppsummering naturlige binærtall (posisjonssystemet) Gray-kode flyttall Negative tall representeres ved hjelp av fortegn (tekst, flyttall) toer-komplement (heltall) bias (eksponenten i flyttall) Presisjon: Et uttrykk for avviket i verdi mellom det virkelige tallet og representasjonen. Heltall representeres eksakt, flyttall med varierende presisjon. INF1040-Binærtall-31 INF1040-Binærtall-32