Tall Tallsstemer - - - - = = 7B - - -7-8 7 Lærebokas kapittel INF-tall- INF-tall- Posisjonstallsstemer Vårt velkjente titallsstem er et posisjonssstem: 7 = + + + + 7 eller: 7 = ( * ) + ( * ) + ( * ) + ( * ) + (7 * ) Potenser av = = = * = = ** = = *** = osv Vi har fingre og bruker et -talls-sstem. Tilfeldig? INF-tall- Veiing med skålvekt titallsstemet g g g g g g g g g g g g ggg g g g g g g g g g g g g g g g gg g g Loddsats titallssstemet INF-tall-
Den generelle formelen for titallsstemet Hvis n er antall siffer, er den generelle formelen for titallsstemet = s * (n-) + s * (n-) + + s n- * () + s n * () n = s k * (n-k) k= Eksempel: = 7 dvs n = : Veiing med skålvekt det binære tallsstemet g gg g 8g g g - - - - - ( * ) + ( * ) + ( * ) + ( * ) + (7 * ) 8g g g g g 8g g g g s s s s s k = Loddsats binærsstemet (totallsstemet) INF-tall- INF-tall- Det binære tallsstemet Har bare to siffer, og Bgger på posisjonssstemet som titallsstemet Posisjonenes verdi er potenser av Eksempel: = + + eller = ( * ) + ( * ) + ( * ) + ( * ) + ( * ) = + + = Potenser av = = = * = = ** = 8 = *** = osv Vi viser med en liten subskript at tallet er binært Den generelle formelen for det binære tallsstemet Hvis n er antall siffer, er den generelle formelen for det binære tallsstemet = s (n-) + s * (n-) + + s n- * () + s n * () = s * (n-) + s * (n-) + + s n- * () + s n * () n = s k * (n-k) k= Dette er nøaktig samme formel som for titallsstemet, bortsett fra at grunntallet er bttet ut med grunntallet = INF-tall-7 INF-tall-8
Veiing med skålvekt det heksadesimale tallsstemet Det heksadesimale tallsstemet Har siffer: 7 8 9 A B C D E F gg g g g g gg g g g g g g g g g g g g gg g g g g g g g g ggg g g g g g g ggg g g g g Loddsats det heksadesimale sstemet Bgger på posisjonssstemet som titallsstemet Posisjonenes verdi er potenser av Eksempel: AC = A * + * + C * eller AC = ( * ) + ( * ) + ( * ) = * + * + = 8 INF-tall-9 INF-tall- De heksadesimale sifrene heksadesimalt siffer verdi i titallsstemet 7 7 8 8 9 9 A B C D E F INF-tall- Den heksadesimale landeplage (?) Mel.: Kjerringa med staven C er tolv og D er tretten E er fjorten, F er femten seksten ganger seksten, det er to fem seks ganger seksten, det er førti nitti seks (ganger seksten, det er seks fem fem tre seks) A er ti, B er el ve Heksa B er el ve Nttig heksadesimal kunnskap: A = = B = = 9 C = = D = E = F = INF-tall-
Den generelle formelen for det heksadesimale tallsstemet Hvis n er antall siffer, er den generelle formelen for det heksadesimale tallsstemet = s * (n-) + s * (n-) + + s n- * () + s n * () = s * (n-) + s * (n-) + + s n- * () + s n * () n = s k * (n-k) k= Dette er nøaktig samme formel som for titallsstemet, bortsett fra at grunntallet er bttet ut med grunntallet = Tallsstemer - en veiingsanalogi Titallsstemet = = =8 lodd Det binære tallsstemet = Det heksadesimale tallsstemet A lodd A INF-tall- INF-tall- Nttige konverteringer mellom tallsstemer Titallsstemet Hva er en algoritme? Algoritme (latin, opprinnelig arabisk): Metode eller formel for en utregning Har en bestemt input Det heksadesimale tallsstemet Det binære tallsstemet Har en bestemt output Har bestemte trinn Kan utføres av en maskin Algoritmen vil terminere hvis input er korrekt Vi bruker algoritmer for å konvertere mellom tallsstemene INF-tall- INF-tall-
Fra titallsstemet til det binære tallsstemet En algoritme: La tallet være. Heltallsdivider med, kvotient gir n og rest r r er siste binærsiffer Heltallsdivider n med, kvotient gir n og rest r r er nest siste binærsiffer. Fortsett til blir Eksempel: / rest = Det heksadesimale tallsstemet Algoritmen: Er tallet et oddetall eller et partall? Er halvparten av tallet et oddetall eller et partall? INF-tall-7 Det binære tallsstemet Fra titallsstemet til det binære tallsstemet En alternativ algoritme: La tallet være. Finn den største toerpotensen som er mindre enn og sett en i denne posisjonen Trekk denne toerpotensen fra og få en n Finn den største toerpotensen som er mindre enn og sett en i denne posisjonen Fortsett inntil = Eksempel: k - k k 8 = INF-tall-8 Fra det binære til det heksadesimale tallsstemet Det heksadesimale tallsstemet Det binære tallsstemet Grupper de binære sifrene og (bakfra) Erstatt hver gruppe med det tilsvarende heksadesimale sifferet Eksempel: = For å komme fra det heksadesimale til det binære tallsstemet bruker vi tabellen motsatt vei binær siffergruppe heksadesimalt siffer 7 8 9 A B C D E F INF-tall-9 Fra det heksadesimale tallsstemet til titallsstemet Vi bruker formelen s * (n-) + s * (n-) + + s n- * () + s n * () n = s k * (n-k) k= Eksempel: = * + = Titallsstemet Titallsstemet Titallsstemet Det heksadesimale Det binære tallsstemet tallsstemet Titallsstemet Det heksadesimale Det binære tallsstemet tallsstemet Ringen er sluttet! Det finnes mange konverteringstjenester på nettet, for eksempel http://www.teach-at-home.com/fastfacts/numbers/binar.asp INF-tall-
Ekstranummer: Fra det binære tallsstemet til titallsstemet Vi bruker formelen s * (n-) + s * (n-) + + s n- * () + s n * () n = s k * (n-k) k= Eksempel: = + + + = + + + = Det heksadesimale tallsstemet Titallsstemet Det binære tallsstemet Enklere å gå via det heksadesimale sstemet? Representasjon av tall Lærebokas kapittel 7 INF-tall- INF-tall- To måter å representere tall Som binær tekst Eksempel: '' i ISO 889- og Unicode UTF-8 er U+ U+, altså Brukes eksempelvis ved innlesing og utskrift, i XML-dokumenter og i programmeringsspråket COBOL Som binært tall (internt, native ) Eksempel: = Brukes som internt format ved lagring og beregninger se også http://courses.cs.vt.edu/~csonline/numbersstems/lessons/inde.html Tekst ASCII, UNICODE XML, CSS Konverteringsrutiner Vi skal her se nærmere på binære tall Tall positive, negative heltall, fltende tall INF-tall- INF-tall-
Enkel addisjonstabell + = + = + = + = med i mente Binære regnestkker Binær addisjon - eksempel = = Enkel multiplikasjonstabell * = * = * = * = Et binært tall ganges med ved å føe til en bakerst Disse operasjonene kan utføres på nanosekunder i datamaskinenes elektroniske kretser = * + * = + = 7 INF-tall- INF-tall- Binær multiplikasjon - eksempel =, = Overflt ("overflow") I en datamaskin regner vi som regel med tallrepresentasjoner med et fastlagt antall biter (vanligvis 8,,, eller ) * = * + * + 9 * = + 8 + 9 = INF-tall-7 Dersom en aritmetisk operasjon fører til at resultatet faller utenfor det mulige tallområdet, har vi en overflt ("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 -> overflt = = 8 biter begrenser mulig tallområde til [,,] + = 9 INF-tall-8
Gra-kode Binært tallsstem Gra-kode Titallsstem 7 8 9 Et ikke-posisjonssstem der representasjonen av et tall og det neste tallet i tallrekken atskiller seg i bare én bit INF-tall-9 Konvertering binært tallsstem Gra-kode Fra det binære tallsstemet til Gra-kode : eclusive or -operasjonen to like biter gir, to ulike biter gir Fra Gra-kode til det binære tallsstemet Huskeregel: I begge konverteringer XOR es med forrige bit i det binære tallsstemet! INF-tall- Negative tall "Klokkearitmetikk" Mange representasjonsmuligheter, men stor fordel om vi kan bruke samme elektronikk for å regne som for positive tall Derfor representeres negative tall som komplementer Vi ser først på litt "klokkearitmetikk" (modulo-operasjoner) Deretter lager vi oss en -timers ( biters) klokke, og blir enige om at tallene på venstre del av skiven (som alle starter med en binær ) skal tolkes som negative Modulo-operatoren utføres ganske enkelt ved å se bort fra overflten 9 8 7 Hvis klokka er, hvor me er den om timer? Jo: (+)% %: Modulo-operatoren (rest av heltallsdivisjon) INF-tall- INF-tall-
Negative tall som toer-komplement 7 8 9 "Klokkearitmetikk" toer-komplement - - - Forutsetter -biters tallrepresentasjon, gir verdiområdet [ 8,,7] - -8-7 - - - - - - 7 Tenk deg en digital teller som står på. Drei den i negativ retning. Første ne tall som dukker opp er komplementet til, dvs. 99999. - - -7-8 7 Hvis klokka er, hvor me er den om timer? Jo: (+)% INF-tall- INF-tall- Toer-komplementet Det binære toer-komplementet er lett å beregne: Ta et binært tall Erstatt alle med, alle med (legg merke til at vi må vite antall biter for tallrepresentasjonen) Legg til Eksempel: = (forutsetter 8 biter) toer-komplementet er + =, dvs. * + * = Regne ut + ( ): + = = * = Hva er det binære toer-komplementet til? Noen observasjoner om toer-komplement Positive binære tall begnner på (mest signifikante bit, MSB =) Negative binære tall begnner på (mest signifikante bit, MSB =) 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 overflt! Dersom vi legger sammen et binært tall med dets toer-komplement, får vi (selvfølgelig ) toer-komplementet av toer-komplementet av et tall er tallet Gjelder ikke for det siste negative tallet ( the weird number ) overflt! mente INF-tall- INF-tall-
En annen vri tall med "bias" Vi skal representere tallene [ 8,,7] (8 biters tallrepresentasjon) Vi legger en bias 8 til alle tallene, slik at vi istedenfor kan representere tallene [,,] og det er jo helt kurant Ved addisjon kommer bias med to ganger, så vi må trekke den fra igjen Eksempel (forutsetter 8 biters tallrepresentasjon og derfor bias 8): Vi skal addere og. bias 8 = 8 = - bias 8 = 7 = 8 + 7 8 = + - = = * = = bias 8 Dette prinsippet brukes for eksponenten i fltende tall, se lsark INF-tall- datatpe bte short int long antall biter 8 Heltallstper i Java minste tall 8 78 788 9787788 største tall 7 77 7 87 9787787 Legg merke til at største tall er en mindre enn minste tall med motsatt fortegn. Tallet tar den første positive plassen! INF-tall-7 INF-tall-8 Flttall Binære flttall Hva hvis heltallsområdet ikke er stort nok? Hva med desimaler etter komma? Svaret er flttall! Vi ser først på den desimale verden: Et tall kan skrives som eksponent * mantisse Eksempler: *, = *, = *, = *, =, - *, =, *, =, - *, =, *, =, Et binært flttall er basert på eksponent * mantisse Vi må representere eksponent og mantisse Begge må kunne være både positive og negative (og null) Mange representasjonsmuligheter, verden har imidlertid standardisert på IEEE 7 To varianter: -biter representasjon (single precision, datatpe real ) -biter representasjon (double precision, datatpe double ) se http://stevehollasch.com/cginde/coding/ieeefloat.html INF-tall-9 INF-tall-
Single precision Double precision Binære flttall (forts.) fortegnsbit 8 eksponent med bias 7 mantisse. Ikke-lagret ledende med antatt binærpunkt fortegnsbit eksponent med bias mantisse. Ikke-lagret ledende med antatt binærpunkt Mantissen er normalisert, slik at første bit alltid er. Derfor sparer vi plass ved ikke å lagre denne biten! Vi legger en bias til eksponenten slik at representasjonen aldri er negativ! INF-tall- datatpe real double Flttallsområder i IEEE 7 (og i Java) antall biter minste positive tall + = + ~,8 + = + ~, og tilsvarende for negative tall minste positive tall overflow-område underflow-område største positive tall + ( )* 7 = + ~ 8, + ( )* = + ~ 8. største positive tall overflow-område Spesielle verdier: Null: Både eksponent og mantisse er (både + og ) Uendelig: Eksponent med bare ere, mantisse med bare ere Not A Number: Eksponent med bare ere, mantisse Mantisse som starter med : Resultat av en udefinert operasjon (eksempel: /) Mantisse som starter med : Resultat av en ulovlig operasjon (eksempel: N/) INF-tall- Om presisjon og nøaktighet Presisjon ( precision ): Hvor presist vi ønsker å representere et tall. Er direkte avhengig av hvor mange biter vi velger å bruke. Ut i rommet Heltall er alltid presist representert innenfor tallområdet. Presisjonen for flttall varierer, men er omvendt proporsjonal med tallets størrelse. Jo mindre tall, jo større presisjon! Nøaktighet ( accurac ): Hvor nøaktig vi ønsker (eller greier) å måle eller observere en størrelse. Siden mange tall ikke kan representeres eksakt, må de snappes til nærmeste representerbare tall. Dette kalles diskretisering. Lærebokas kapittel 8 INF-tall- INF-tall-
Punkter i endimensjonalt rom Punkter i todimensjonalt rom Et tall kan oppfattes som et punkt i et endimensjonalt rom Tallet er da en koordinatverdi Eksempler: Punktene -.,, π -. π - - - - - I et todimensjonalt rom trenger vi et koordinatpar. Eksempel: Punktet (,) (,) Kartesisk koordinatsstem (,) (π,) origo π - - - - - - INF-tall- INF-tall- Punkter i tredimensjonalt rom I et todimensjonalt rom trenger vi et koordinattrippel. Tredimensjonalt rom vist som animasjon Eksempel: Punktet (,, π) Z= Z= π Kartesisk koordinatsstem Z= Z= Z=π Z= (,) (,, π) Z= Z=π Z= (,) Z= Z= Z= - Animasjon langs -aksen INF-tall-7 INF-tall-8
Alternativ til kartesiske koordinater to dimensjoner Alternativer til kartesiske koordinater tre dimensjoner (,) (.7π,.7) r=.7 h r v v v=.7π - - r v Polarkoordinater Slinderkoordinater Sfæriske koordinater INF-tall-9 INF-tall- Diskretisering i rommet Punkter i flerdimensjonale rom må snappes til nærmeste representerbare punkt på samme måte som tall (punkter i det endimensjonale rom) snappes til nærmeste representerbare tall Geometrier i rommet En geometri kan oppfattes som en punktsk med uendelig mange punkter (tett punktmengde). Dimensjonaliteten kan ikke være større enn rommets dimensjonalitet Endimensjonalt rom Eksakt verdi Diskretisert verdi Todimensjonalt rom Tredimensjonalt rom INF-tall- INF-tall-
Representasjoner av geometri Regulære geometrier En uendelig mengde punkter med uendelig presis beliggenhet kan ikke representeres i en datamaskin Endimensjonalt rom Rett linje To ulike løsninger; Vektorrepresentasjon : Representere noen viktige punkter, og avlede de øvrige punktene matematisk ved behov. Egnet for regulære geometrier. Todimensjonalt rom (, ) Rett linje (. ) Sirkel r Rasterrepresentasjon Bgge opp representasjonen av et endelig antall punkter med utstrekning. Gir vanligvis bare en tilnærmet korrekt geometri. Tredimensjonalt rom (,, ) r (,, ) INF-tall- Rett linje Kuleskall INF-tall- Interpolasjonsteknikker Lineær interpolasjon i to dimensjoner Interpolasjon med konstant Lineær interpolasjon Interpolasjon med glatting INF-tall- INF-tall-
Triangulated irregular network (TIN) Quad-tre INF-tall-7 INF-tall-8 Endimensjonalt raster Rasterrepresentasjon I rasterrepresentasjon bgges geometrien opp av punkter med utstrekning Todimensjonalt raster Tredimensjonalt raster Tall oppsummering Tall kan representeres tekstlig, som binære tall, i Gra-kode eller som flttall. For negative binære heltall brukes vanligvis toer-komplementer. Andre alternativer er bruk av fortegnsbit eller bruk av bias, Tall kan betraktes som punkter i et rom tallene fungerer da som koordinater. Punkter som ikke kan representeres eksakt, må snappes til nærmeste representerbare punkt såkalt diskretisering. Geometrier med utstrekning kan ikke ha høere dimensjonalitet enn rommet de er plassert i. For geometrier med utstrekning kan vi bruke enten vektorrepresentasjon eller rasterrepresentasjon. INF-tall-9 INF-tall-