Festkommadarstellung Weitz / HAW Hamburg https://www.youtube.com/watch?v=SGOoaRa9TMQ Transkript (automatisch erstellt) 0:01 und wir wollen uns jetzt überlegen wie man rationale Zahlen im Computer darstellen kann und wir werden das in drei Schritten machen ich werde nicht 0:09 gleich damit anfangen ihnen zu sagen wie die Zahlen wirklich im Computer dargestellt werden sondern wir machen wir werden die 0:17 Darstellung nach und nach komplizierter machen weil so wie das tatsächlich im Computer dargestellt wird ist schon relativ kompliziert ist und ich glaube 0:25 es ist einfacher wenn wir uns Schritt für Schritt ranarbeiten das heißt die ersten beiden en Zahlen im Computer darzustellen sind nicht so wie es in 0:35 diesem Rechner wirklich gemacht wde und auch nicht in dem Rechner den sie haben andererseits sind das aber auch nicht völlig aus der Luft gegriffene Modelle 0:42 sondern beide Sachen die ich ihn vorher sozusagen als Einführung zeige sind zeige ich i nicht nur aus didaktischen Gründen die gibt es auch im wirklichen 0:50 Leben ich werde ihn zunächst die sogenannte festkomma Arithmetik zeigen die finden Sie z.B heutzutage immer noch in embeded Systems oder in wenn sie z.B 1:00 eine alte Spielekonsole haben wird das auch teilweise benutzt äh sagen wir mal so ganz grob immer wenn sie Hardware haben äh bei der aus verschiedenen 1:08 Gründen gespart werden musste entweder wegen Energieverbrauch oder wegen kosten dann sind das häufig ähm Prozessoren ohne sogenannte floating point unit und 1:18 wenn sie sowas nicht haben dann müssen sie rationale Zahlen durch festkomma Arithmetik simulieren also wie gesagt wenn sie zu Hause eine alte 1:26 Spielekonsole haben kann es sein dass die intern so rechnet wie ich es ihnen gleich zeige im zweiten Schritt werde ich ihn etwas zeigen was nicht mehr 1:33 festkomma Arithmetik sondern tatsächlich fließkomma Arithmetik ist allerdings zunächst mal weil wir das besser lesen können nicht binär sondern mit 1:42 Dezimalzahlen auch das gibt's im wirklichen Leben wenn sie ganz viel Geld haben und Sie gehen zu IBM und sagen ich möchte ein Supercomputer kaufen dann 1:50 verkaufen die ihn gerne ein in diesen Supercomputern sind sogenannte powerprozessoren drin und diese powerprozessoren können intern mit 1:58 dezimaler fließkomaritm rechnen also auch das kann man tatsächlich kaufen und das gibt's im wirklichen Leben aber noch mal in den Rechnern die 2:08 man normalerweise so in im Laden kauft und die wir so als Laptops benutzen ist etwas drin was wir erst im dritten Schritt uns anschauen 2:18 werden das sind die sogenannten IEE Fließkommazahlen damit wir die besser verstehen können gehen wir Schritt für Schritt Rean und gucken uns 2:26 erstmal an was man bekommen würde wenn man mit fest komm Arithmetik rechnen würde also 2:39 festkommadarstellung festkommadarstellung funktioniert so dass Sie sich vorher überlegen dass sie für ihre Zahlen nur eine bestimmte 2:47 Anzahl von Stellen zur Verfügung haben also wir nehmen jetzt mal Ende zahl ich sag mal wir haben nur Z Stellen zur Verfügung das könnte sich wirklich wie 2:57 so eine wie so ein Display von so einem alten Taschenrechner vorstellen wenn sie das noch wenn Sie das mal gesehen haben wo sie dann wirklich so eine feste 3:06 Anzahl von Ziffern hatten 2 4 6 8 10 10 Ziffern und auf jede von diesen Stellen kann ich jetzt eine Dezimalziffer schreiben und das heißt ja nicht umsonst 3:16 fest Komma ich muss mich dann irgendwo entscheiden wo mein Komma steht und das bleibt dann da auch fest stehen damit wir jetzt irgendein Beispiel haben sage 3:24 ich mal das Komma ist immer hier das darf dann auch nicht verrückt werden so mit dieser festkommaarithmetik können wir bestimmte Zahlen darstellen 3:32 und bestimmte nicht da wir das dezimal machen kann ich z.B schreiben überall stehen 3:42 Nullen und hier nicht zu vergessen ist der Dezimalpunkt das ist natürlich die Zahl ull klar oder ich könnte die Zahl muss natürlich auch vorkommen diese Zahl 3:53 hier hinschreiben das wäre einfach die ganze Zahl 42 oder ich kann irgendwas hinter dem Komma natürlich auch 4:04 machen das wäre die Zahl 0,5 oder einhalb oder ich kann natürlich irgendwelche wild gemischten zahlen hier 4:15 hinschreiben das wäre die Zahl 201175 10000 die kann man noch 4:24 kürzen das ist 201 D 4h würde ich sagen MSS mal ausrechnen zu Hause ob ich 4:38 mich da nicht verrechnet habe aber ich glaube das ist richtig so sie sehen offensichtlich wie das 4:45 gemeint ist mit dieser festkomm Darstellung es gibt offen ach so was ich jetzt weggelassen habe darüber reden wir später noch ist das Vorzeichen also das 4:55 reicht für unsere Zwecke wir wollen ja nur mal gucken was man damit alles so nicht so machen kann man könnte sich jetzt noch vorstellen 5:01 ich kann hier vorne noch Plus Minus davor schreiben das brauchen wir aber nicht wir rechnen nur mit positiven Zahlen was ist die größte Zahl die man 5:11 hiermit darstellen kann 9,9 ja also wenn man überall neunen hinschreibt danach ist dann Schluss also 5:24 1000 geht schon nicht mehr man kommt so knapp an die 1000 ran aber weiter geht's nicht und null ist offensichtlich die kleinste Zahl die man hinschreiben kann 5:31 das heißt die erste Einschränkung die man mit so einer festkommadarstellung hat ist es gibt eine kleinste Zahl unter die kommt man nicht runter und es gibt 5:37 eine größte Zahl über die kommt man nicht rüber das ist nun noch nichts Besonderes weil wir das sogar schon von den ganzen Zahlen kennen wenn sie C oder 5:44 Java rechnen gibt es auch eine kleinste Zahl unter die sie nicht drunter kommen und eine größte Zahl über die sie nicht rüber kommen ist schon bei den ganzen 5:50 Zahlen so das ist aber nicht das einzige Problem es ist jetzt nicht nur so dass wir 5:56 zahlen über der größten Zahlen nicht darstellen können Kön und Zahlen unter der kleinsten Zahl nicht darstellen können sondern fällt ih noch eine andere 6:04 Zahl ein die obwohl sie größer als ull ist und kleiner als 999 man trotzdem nicht darstellen kann PI ist ein gutes Beispiel aber vielleicht noch was 6:15 einfacheres erstmal periis also die periodischen Brüche könnte man z.B nicht darstellen ein Drittel wenn ich ein Drittel 6:24 darstellen wollte dann könnte ich das höchstens angenähert darstellen also das Beste was man hinbekommen könnte wäre dass ich 73 dahinter mache also das ist 6:35 nicht ein Drittel sondern das ist nur ungefähr ein Drittel Pi ist ein Beispiel was nicht geht alle periodischen Brüche vi können Sie mir eine Zahl sagen die 6:46 äh ein Bruch ist die auch tatsächlich eine abbrechender Dezimalbruch wäre also die man mit endlich viel nachkmastellen hinschreiben könnte und die trotzdem ich 6:56 hiermit nicht darstellen kann eine Milliardstel ein Milliardstel z.B also ein Milliardstel wäre 10 hoch -9 das wäre wenn man es richtig hinschreiben 7:07 würde die Zahl [Musik] 0,001 und diese Zahl kann ich natürlich auf meinem Rechner nicht darstellen weil 7:16 ich ja nur sieben Nachkommastellen zur Verfügung habe ich müsste also an dieser Stelle hier abbrechen das heißt die den Häkchen 7:25 angenäherte Darstellung auf meinem Rechner wäre diese Zahl hier die ich nicht von der Null unterscheiden kann ja also die 7:36 kleinste Zahl die ich mit dieser festkomm Darstellung darstellen kann ist die 0 die nächste Zahl die ich darstellen kann ist diese 7:45 hier zwischen diesen beiden Zahlen denken Sie an das Bild was ich gerade vom Zahlenstrahl hatte liegen aber unendlich viele rationale Zahlen diese 7:53 unendlich vielen rationalen Zahlen die zwischen diesen beiden Zahlen liegen kann ich alle nicht genau darstellen jede von diesen Zahlen die dazwischen 8:01 liegt wird entweder als 0 oder als 0,001 dargestellt je nachdem was näher dran liegt aber auf jeden Fall ist sie nicht richtig das ist erstmal ein 8:12 grundsätzliches Problem von diesem Modell was ich hier mit der festkomarithmetik habe wie viel verschiedene Zahlen kann ich denn mit 8:21 dieser Darstellung darstellen wie viel verschiedene Zahlen kann ich exakt darstellen vergessen sie mal die die ich alle nicht darstellen kann denken Sie 8:28 mal nur über die nach ich darstellen kann z.B 0 kann ich darstellen 42 ein/behen ja ein paar Beispiele wie viel verschiedene Zahlen kann ich so exakt 8:42 darstellen ja wieso 9 hoch 10 sie sind fast richtig aber 9 ist nicht ganz richtig ja sie haben für jede Stelle 10 8:54 Möglichkeiten und insgesamt haben wir ze stellen also 10 10 x 10 und so weiter also sie haben 10 hoch 10 Zahlen die sie darstellen 9:05 können das sind 10 Milliarden zahlen das ist ja nicht wenig ne also dass wir haben nur Zeh Stellen zur Verfügung wir können 10 Milliarden 9:15 Zahlen darstellen aber 10 Milliarden ist natürlich nichts gegen unendlich viele Zahlen die wir nicht darstellen können was wir hier jetzt sehen ist ein 9:24 grundsätzliches Problem was auch in allen späteren Modellen die wir uns anschauen nicht sich ändern wird wir können immer im Prinzip ausrechnen wie 9:32 viel zahlen wir mit der begrenzten Anzahl von Stellen darstellen können das werden teilweise wahnsinnig große Zahlen sein wo wir erstmal mit offenem Mund 9:40 davorstehen und sagen wow das sind aber viele Zahlen viel mehr als 10 Milliarden z.bpi aber äh da es unendlich viele rationale Zahlen gibt bedeutet das immer 9:50 dass die meisten zahlen wir nicht darstellen können das wird eigentlich in all diesen Darstellungen immer unser Hauptproblem sein 10:01 m vielleicht noch mal was zu den Begriffen falls ih die mal über den Weg laufen solche Zahlen die man tatsächlich richtig darstellen kann wie diese vier 10:10 Beispiele hier also die wirklich in unserem Modell richtig dargestellt werden die nennt man 10:23 maschinenzahlen also man würde z.B sagen die Zahl 42 ist eine maschinenzahl weil ich sie mit dieser also im Bezug auf meine festkomma Darstellung mit 10:32 insgesamt Zeh Stellen davon sieben nach dem Komma in Bezug auf diese Darstellung ist 42 eine maschinenzahl ein/b ist eine maschinenzahl 201 34h ist eine 10:44 maschinenzahl 1 Drittel ist keine maschinenzahl weil ich sie nicht exakt darstellen kann 10 -9 ist keine maschinenzahl weil ich sie 10:54 nicht exakt darstellen kann das ist der Unterschied die Zahlen die man exakt darstellen kann sind die maschinenzahlen die anderenzahlen die keine 11:00 maschinenzahlen sind sind die bei denen man bei der Darstellung Kompromisse eingehen muss was man möchte ist dass bei den 11:08 Zahlen die man nicht richtig darstellen kann man dann zumindest die maschinenzahlen nimmt die so nah wie möglich dran liegt also ich habe ja eben 11:19 schon hier ein Beispiel oder zwei Beispiele gemacht für ein Drittel habe ich die Zahl genommen 11:27 0,3333333 die ich auch schreiben könnte als 3333333 geeilt durch 10 Millionen also als Bruch das wäre eine maschinenzahl 11:40 und das ist die beste Näherung weil wenn ich da hinten jetzt eine Stelle ändere wenn ich aus der 3 eine Z 4 mache dann werde ich in beiden Fällen was bekommen 11:48 was noch ein bisschen weiter weg von dem richtigen Wert ein Drittel ist also bei Zahlen die man nicht richtig darstellen kann haben Sie die 11:56 folgende Situation sie haben die Zahl sie haben ein nährungswert den schreib ich mal x Schlange das ist die 12:13 maschinenzahl weil die beiden Zahlen nicht gleich sind ist der Unterschied zwischen den beiden irgendein 12:21 Wert diesen Wert nennt man den absoluten Fehler oder wenn Sie so wollen auch den Rundungsfehler 12:32 und sie wollen dass dieser Rundungsfehler dieser absolute Fehler möglichst klein ist das macht Ihr Computer normalerweise automatisch das 12:40 heißt das haben wir jetzt ja schon gesehen sie geben einfach sowas ein wie ein Drittel der Computer kann das nicht genau ausrechnen aber er wird 12:48 typischerweise dafür sorgen dass das Ergebnis was rauskommt das Beste ist was sich mit maschinenzahlen machen lässt also Sie können sich elich drauf 12:58 verlassen was immer sie benutzen ob sie fließkomma Arithmetik oder festkomma Arithmetik ob dezimal oder binär äh wenn sie mit irgendwelchen Zahlen hantieren 13:06 also wenn die Ergebnisse von Berechnung irgendwelche Zahlen sind die nicht maschinenzahlen sind dann wird der Computer Ihnen als Ergebnis eine 13:13 maschinenzahl liefern die so nahe wie möglich am richtigen Ergebnis dran ist das klingt erstmal ziemlich gut aber wir werden noch sehen dass das trotzdem 13:22 häufig nicht genug ist