Excess 128 Binary Optionen

Signiert Int: BiasExcess Notation In überschüssiger Notation geben Sie zwei Parameter an: die Anzahl der Bits, N und den Bias-Wert K. Bei SM und 1C gibt es nur einen Parameter: die Anzahl der Bits. Zum Beispiel lassen Sie K 5 (in 3 Bits), und Sie haben überschüssige 5-Darstellung, die 000 bis -5 zuweist und macht 111 gleich 2. In der Tat, überschüssige K-Darstellung Karten 0 N zu - K und 1 N zu - K & sub2; N - 1 Wenn du K 2 N - 1 auswählst, dann wird das Vorzeichenbit umgedreht, wobei 1 in der MSb positiv ist und 0 bedeutet negativ. Mit Übermaß (oder Bias) Darstellung können Sie nicht mit unsigned int zusätzliche Hardware hinzufügen. Sie benötigen eine spezielle Schaltung, um den Zusatz durchzuführen. Diese Tabelle nimmt eine überschüssige K-Darstellung an. Anzahl der Werte Basis 10 zu überschreiten Fügen Sie den Überschuss der Basis zehn Nummer hinzu. Konvertieren Sie die resultierende Basis zehn Nummer in unsigned binary (UB). Überschreiten Sie auf Basis 10 Konvertieren Sie die Binärzahl auf Basis zehn, indem Sie unsigned binary (UB) - Darstellung verwenden. Subtrahieren Sie den Überschuss. Es ist leicht zu sehen, dass die Umwandlung in und von der übermäßigen Repräsentation inverse Operationen ist. Warum ExcessBias ist anders Die anderen signierten Darstellungen, die wir gesehen haben: SM, 1C und 2C alle teilen die Anzahl der negativen und nicht-negativen Werte gleichmäßig auf. Grundsätzlich kannst du das auch mit Überdruck machen. Jedoch, da die überschüssige K-Darstellung unter Verwendung von N Bits zwei Parameter, K und N hat, kannst du K auswählen, um zu sein, was auch immer du willst. Sie können mehr positive Zahlen als negativ haben, nicht null, und so weiter. Da die überschüssige K-Repräsentation zwei Variablen (K und N) verwendet, hängt jede Hardware, die für die Addition in dieser Darstellung ausgelegt ist, sowohl von K als auch von N ab. Glücklicherweise hängt die Sortierung von Werten in Überdimensionierung nur von N ab. Wie 2C ist die Überdimensionierung bei Die meisten, eine Null. Allerdings ist es möglich, K zu wählen, also gibt es keine null (wählen Sie eine passende große K). Im Gegensatz zu den anderen signierten int-Darstellungen können Sie Werte in overbias-Darstellung mit unsigniertem Vergleich vergleichen. Allerdings bevorzugen die meisten Menschen, zusätzlich zu Vergleich zu übersetzen, weshalb 2C eine übertriebene Notation bevorzugt wird. Überschüssige Notation findet jedoch eine Verwendung in der Gleitkomma-Darstellung, weshalb wir es studieren. Floating Point Einführung Int und unsigned int sind Annäherungen an die Menge der ganzen Zahlen und die Menge der natürlichen Zahlen. Im Gegensatz zu int und unsigned ist der Satz von ganzen Zahlen und der Satz von natürlichen Zahlen unendlich. Da die Menge von int endlich ist, gibt es eine maximale int und eine minimale int. Ints sind auch angrenzend Das heißt, zwischen dem minimalen und dem maximalen int gibt es keine fehlenden Werte. Der Satz gültiger Ints ist endlich. Daher gibt es ein Minimum und Maximum int. Ints sind auch angrenzend Das heißt, es gibt keine fehlenden Integer-Werte zwischen dem Minimum und Maximum int. Theres auch ein weiteres Schlüsselelement von Ints, das nicht in der Menge der ganzen Zahlen erscheint. Ints haben eine zugrunde liegende Darstellung. Die Darstellung ist binäre Zahlen. Die Menge der ganzen Zahlen wird oft als Basis 10 Ziffern dargestellt, wird aber oft abstrakt gedacht. Das heißt, das Set ist unabhängig von seiner Repräsentation (dh wir können die Menge der Ganzzahlen in irgendeiner Weise repräsentieren).Was Probleme kommen beim Versuch, eine Datenrepräsentation für Gleitkommazahlen zu entwickeln. Es stellt sich heraus, dass diese Probleme komplizierter sind als Die ganze Zahlen darstellen. Während die meisten Leute einverstanden sind, dass UB und 2C die Möglichkeiten sind, unsigned und signierte Ganzzahlen darzustellen. Die Darstellung der realen Zahlen ist traditionell problematischer geworden. Insbesondere, je nachdem, welches Unternehmen die Hardware herstellte, gab es verschiedene Möglichkeiten, reale Zahlen darzustellen und zu manipulieren. Theres keine besonders offensichtliche Wahl, wie man reale Zahlen darstellt. Mitte der 80er Jahre führt die Notwendigkeit einer einheitlichen Behandlung von reellen Zahlen (sogenannte Floating-Point-Nummern) zum IEEE 754-Standard. Standards werden oft entwickelt, um ein konsequentes Verhalten zu geben. Zum Beispiel, als C zuerst entwickelt wurde, hieß das, was als gültiges C-Programm angesehen wurde, sehr viel vom Compiler ab. Ein Programm, das auf einem C-Compiler kompiliert wurde, kann nicht auf einem anderen kompilieren. Effektiv wurden viele verschiedene Aromen von C geschaffen, und die Notwendigkeit, eine Standarddefinition einer Sprache zu haben, wurde als wichtig angesehen. Ähnlich war es für die Zwecke der Vereinbarung von Ergebnissen, die an Gleitkommazahlen durchgeführt wurden, ein Wunsch, die Art und Weise, wie Gleitkommazahlen repräsentiert wurden, zu standardisieren. Bevor wir zu solchen Themen kommen, können wir darüber nachdenken, welche Einschränkungen auf Gleitkommazahlen verhängt werden müssen. Da die Anzahl der Bits, die verwendet werden, um eine Gleitkommazahl darzustellen, endlich ist, muss es einen maximalen Schwimmer und einen minimalen Schwimmer geben. Da jedoch die reellen Zahlen dicht sind (d. h. zwischen zwei beliebigen reellen Zahlen, gibt es eine andere reelle Zahl), gibt es keine Möglichkeit, irgendeine Darstellung von reellen Zahlen zusammenzubringen. Integers haben diese Dichte nicht. Das heißt, wir müssen entscheiden, welche realen Zahlen zu behalten und welche loszuwerden sind. Klar, jede Zahl, die wiederholt Dezimalstellen hat oder niemals wiederholt, ist nicht etwas, das als Gleitkommazahl dargestellt werden kann. Wissenschaftliche Notation Warum müssen wir reale Zahlen darstellen Natürlich ist es wichtig, in Mathematik zu sein. Allerdings sind echte Zahlen für Messungen in der Wissenschaft wichtig. Präzision vs. Genauigkeit Lets definieren diese beiden Begriffe: Definition Precision bezieht sich auf die Anzahl der signifikanten Ziffern, die es braucht, um eine Zahl darzustellen. Grob gesprochen, bestimmt es, wie gut man zwischen zwei Messungen unterscheiden kann. Definition Genauigkeit ist, wie nah eine Messung zu ihrem korrekten Wert ist. Eine Zahl kann genau sein, ohne genau zu sein. Zum Beispiel, wenn Sie sagen, someones Höhe ist 2.0002 Meter, das ist genau (weil es genau auf etwa 11000 Meter ist). Allerdings kann es ungenau sein, da eine Personenhöhe deutlich anders sein kann. In der Wissenschaft wird Präzision in der Regel durch die Anzahl der signifikanten Ziffern definiert. Das ist eine andere Art von Präzision, als Sie wahrscheinlich verwendet werden. Zum Beispiel, wenn Sie eine Skala haben, können Sie Glück haben, Präzision zu einem Pfund zu haben. Das heißt, der Fehler ist - 12 Pfund. Die meisten Leute denken an Präzision als die kleinste Messung, die Sie machen können. In der Wissenschaft ist es anders. Es geht um die Anzahl der signifikanten Ziffern. Zum Beispiel hat 1,23 10 10 die gleiche Genauigkeit wie 1,23 10 -10. Obwohl die zweite Menge viel, viel kleiner als die erste ist. Es kann ungewöhnlich sein, aber das ist, wie gut definieren Präzision. Wenn wir uns entscheiden, eine Zahl darzustellen, ist es einfacher, Präzision zu behandeln als Genauigkeit. Ich definiere Genauigkeit, um das Ergebnis eines Messwertes zu seinem tatsächlichen Wert zu bedeuten. Theres nicht viel ein Computer kann direkt tun, um Genauigkeit zu bestimmen (ich vermute, mit ausreichenden Daten, verwenden Sie statistische Methoden, um Genauigkeit zu bestimmen). Genauigkeit der Berechnungen Es gibt zwei verschiedene Konzepte: die Genauigkeit eines Wertes, der aufgezeichnet oder gemessen wird, und die Genauigkeit der Durchführung von Operationen mit Zahlen. Wir können nicht viel über die Genauigkeit des aufgezeichneten Wertes (ohne zusätzliche Informationen). Allerdings führt die Hardware mathematische Operationen relativ genau durch. Der Grund, warum die Berechnungen vollkommen genau sind, ist, weil man unendlich präzise Mathematik braucht, und das erfordert eine unendliche Anzahl von Bits, die auf einem Computer nicht existiert. Da Gleitkommazahlen nicht unendlich genau sein können, gibt es immer eine Fehlermöglichkeit bei der Durchführung von Berechnungen. Gleitkommazahlen richten sich häufig auf die tatsächlichen Zahlen. Genau deshalb können die Gleitkommazahlen nicht unendlich präzise sein. Im Bereich der Informatik beschäftigt sich die numerische Analyse mit der Durchführung von wissenschaftlichen Berechnungen auf einem Computer. Insbesondere gibt es Möglichkeiten, die Wirkung von Rundungsfehlern zu minimieren, Fehler, die auf die ungefähre Natur der Gleitkomma-Darstellung zurückzuführen sind. Kanonische Repräsentation Bei der Darstellung von Zahlen in wissenschaftlicher Notation hat sie folgende Form: Wo S die Bedeutung oder die Mantisse ist und exp der Exponent ist. 10 ist die Basis. In wissenschaftlicher Notation kann es mehr als eine Möglichkeit geben, denselben Wert zu schreiben. Zum Beispiel ist 6,02 x 10 23 gleich 60,2 x 10 22 ist gleich 602 x 10 21. Für jede auf diese Weise dargestellte Zahl gibt es unendlich viele andere Möglichkeiten, dies zu repräsentieren (indem man den Dezimalpunkt bewegt und den Exponenten anpasst). Es könnte schön sein, eine einzige, konsequente Art zu haben, dies zu tun, d. h. eine kanonische oder normale Art, dies zu tun. Und so gibt es so einen Weg Sie können die Bedeutung als D. FFF schreiben. Wo 1 lt D lt 9 Und FFF. Stellt die Ziffern nach dem Dezimalpunkt dar. Wenn Sie diese Einschränkung auf D folgen. Dann gibt es nur einen Weg, um eine Zahl in wissenschaftlicher Notation zu schreiben. Die offensichtliche Ausnahme von dieser Regel ist 0, was ein Sonderfall ist. Sie können diese Formel für andere Basen verallgemeinern als die Basis 10. Für die Basis K (wobei K gt 1), schreiben Sie die kanonische wissenschaftliche Notationsform als: wobei 1 lt D lt K - 1 ist. Die Fs, die in der Fraktion erscheinen, müssen der Regel folgen: 0 lt D lt K - 1. Die Anzahl der signifikanten Ziffern. Das ist auch die Präzision. Ist die Anzahl der Ziffern nach dem Radixpunkt. Wir nennen es den Radixpunkt anstatt den Dezimalpunkt, weil Dezimal die Basis 10 impliziert, und wir könnten über jede andere Basis sprechen. Binäre wissenschaftliche Notation Wie bei jeder Darstellung auf einem Computer müssen wir Zahlen in binärer Sprache darstellen. Also, das heißt, wir spezialisieren die Formel, um zu sehen: Das schafft eine interessante Einschränkung auf D. Insbesondere 1 lt D lt 1. Was bedeutet, dass D gezwungen ist, 1. Wir benutze diese Tatsache später. IEEE 754 Single Precision IEEE 754 Gleitkommazahlen waren ein Standard, der in den 1980er Jahren entwickelt wurde, um das Problem der Nicht-Standard-Gleitkomma-Darstellung zu bewältigen. Es gibt einen Standard für Einzelpräzision (32 Bits) und doppelte Präzision (64 Bits). Nun konzentrieren wir uns vor allem auf die Präzision. XXXX XXXX XXXX XXXX XXXX XXX Eine IEEE 754 Einzelgenauigkeitsnummer ist in drei Teile unterteilt. Die drei Teile entsprechen den drei Teilen einer Zahl, die in der kanonischen binären wissenschaftlichen Notation geschrieben wurde. Das ist b 31. Wenn dieser Wert 1 ist, ist die Zahl negativ. Ansonsten ist es nicht negativ. Exponent Der Exponent ist overbias 127. Normalerweise erwartet man, dass die Overbias die Hälfte der Anzahl der Darstellungen sind. In diesem Fall beträgt die Anzahl der Darstellungen 256, und die Hälfte davon ist 128. Trotzdem ist der Überschuss 127. Somit ist der Bereich der möglichen Exponenten -127 lt exp lt 128. Normalerweise würden Sie die bedeutsame (auch die Mantisse genannt) repräsentieren, was bedeutet, dass es darum geht, D. FFFF darzustellen. Allerdings erinnern Sie sich, dass für Basis 2, D 1. Da D ist immer 1, theres keine Notwendigkeit, die 1. Sie nur brauchen Um die Bits nach dem Radix-Punkt darzustellen, also ist die 1 links des Radix-Punktes NICHT explizit dargestellt, wir nennen dies die verborgene IEEE 754 Einzelne Präzision hat 24 Bits Präzision, 23 der Bits sind explizit dargestellt und die Zusätzliche versteckte 1 ist das 24. Bit. Es gibt etwas von einem Irrtum, wenn wir sagen, dass eine IEEE Single Präzision hat 24 Bits Präzision. Es ist vor allem sehr sagen, dass ein Taschenrechner mit 15 Ziffern hat 15 Ziffern der Präzision. Es ist wahr Dass es alle Zahlen mit 15 Ziffern darstellen kann, aber die Frage ist, ob der Wert wirklich so präzise ist. Angenommen, eine gemessene Zahl hat nur 3 Ziffern der Präzision, also keine Möglichkeit, dies auf einem Taschenrechner anzuzeigen, der Rechner ist vorbereitet Um 15 Ziffern der Präzision zu haben, obwohl das genauer ist als die Zahl. Dasselbe kann über die Darstellung von Gleitkommazahlen gesagt werden. Es hat 24 Bits Präzision, aber das kann nicht genau die wahre Anzahl von signifikanten Bits darstellen. Leider sind das die besten Computer können. Man könnte zusätzliche Informationen speichern, um genau zu bestimmen, wie viele Bits wirklich bedeutsam sind, aber das ist normalerweise nicht. Kategorien Im Gegensatz zu UB oder 2C fallen die Gleitkommazahlen in IEEE 754 nicht alle in die gleiche Kategorie. IEEE 754 identifiziert 5 verschiedene Kategorien von Gleitkommazahlen. Sie können sich fragen, warum sie das tun. Heres ein Grund. Angesichts der Darstellung, wie es ist, wäre es keine Möglichkeit, 0 darzustellen. Wenn alle Bits 0 waren, wäre dies die Zahl 1,0 X 2 -127. Obwohl dies eine kleine Zahl ist, ist es nicht 0. So bezeichnen wir den Bitstring, der alle 0s enthält, um Null zu sein. Im Folgenden finden Sie eine Liste der Kategorien von Gleitkommazahlen in IEEE 754. null Weil es ein Vorzeichenbit gibt, gibt es eine positive und negative Darstellung von 0. unendlich Es gibt auch eine positive und negative Unendlichkeit. Infinity tritt auf, wenn Sie eine Nummer ungleich Null durch Null teilen. Zum Beispiel, 1.00.0 produziert Unendlichkeit. NaN Das steht für keine Nummer. NaN tritt normalerweise auf, wenn du einen unbestimmten Vorgang machst. Das kanonische Beispiel teilt 0,00.0, das keinen definierten Wert hat. Denormalisierte Zahlen Dies sind Zahlen, die weniger Präzisionsbits haben und kleiner (in der Größe) als normalisierte Zahlen sind. Besprechen Sie die besilderten Zahlen im Detail kurzzeitig. Normalisierte Zahlen Dies sind Standard-Gleitkommazahlen. Die meisten Bitstring-Muster in IEEE 754 sind normalisierte Zahlen. Wie zu sagen, welche Kategorie ein Float ist Es wäre nützlich zu wissen, welche Kategorie eine gegebene Bitstring fällt. Heres das Diagramm. Auch hier schreiben wir 0 8, um 0 zu sagen, wiederholt 8 mal, dh 0000 0000. Beachten Sie, dass es eine positive und negative 0. Denormalisierte Zahlen Angenommen, dass wir alle 0s eine normalisierte Zahl (seine nicht aber, seine wirklich bezeichnet als Null). Ein Bitstring mit 32 Nullen wäre 1,0 X 2 -127. Das ist ein ziemlich kleiner Wert. Allerdings könnten wir Zahlen noch kleiner machen, wenn wir das Folgende machen, wenn der Exponent 0 8 ist. Habe keine versteckten 1. b 23-0 wäre die Bits erscheinen nach einem Radix-Punkt. Fixiere den Exponenten auf -126. Erinnern Sie sich, dass der Exponent mit einer Vorspannung von 127 geschrieben wird. So würden Sie erwarten, dass, wenn der Exponent 0 8 ist. Dieser Bitstring würde den Exponenten -127 repräsentieren und nicht -126. Allerdings gibt es einen guten Grund, warum seine -126. Nun erklären Sie, warum in einem Moment. Für jetzt können wir die Tatsache akzeptieren, dass der Exponent -126 ist, wenn der Exponent-Bitstring 0 8 ist. Größte Positiv Denormalisierte Zahl Was ist die größte positive denormalisierte Zahl Dies ist, wenn die Fraktion 1 23 ist. Es sieht so aus: Dieser Bitstring ordnet der Nummer 0 zu. (1 23) x 2 -126. Diese Zahl hat 23 Bits Präzision, da es 23 1s nach dem Radixpunkt gibt. Kleinste Positiv Denormalisierte Zahl Was ist die kleinste positive denormalizierte Zahl Exponent Bitstring 0 8. (Alle denormalisierten Zahlen haben diese Bitstring). Sein Wert ist -126. Der Bruch ist (0 22) 1. D. h. 22 Nullen gefolgt von einem einzigen 1. Dies sieht wie folgt aus: Dieses Bitstring-Muster zeigt die Zahl 0,0 22 1 x 2 -126 an. Das ist 1,0 x 2 -149. Diese Zahl hat 1 Präzision. Die 22 Nullen sind nur Platzhalter und beeinflussen nicht die Anzahl der Präzisionsbits. Sie können nicht glauben, dass diese Nummer nur 1 Präzision hat, aber das tut es. Betrachten Sie die Dezimalzahl 123. Diese Zahl hat 3 Ziffern der Präzision. Betrachten Sie 00123. Das hat auch 3 Ziffern der Präzision. Die führenden 0s beeinflussen nicht die Anzahl der Ziffern der Präzision. Similary, wenn Sie 0.000123 haben, sind die Nullen nur, um die 123 korrekt zu platzieren, sind aber keine signifikanten Ziffern. Allerdings hat 0.01230 4 signifikante Ziffern, denn das Richtige 0 fügt tatsächlich die Präzision hinzu. So haben wir für unser Beispiel 22 Nullen, gefolgt von einem 1 nach dem Radixpunkt, und die 22 Nullen haben nichts mit der Anzahl der signifikanten Bits zu tun. Durch die Verwendung von denormalisierten Zahlen konnten wir den kleinsten positiven Schwimmer auf 1,0 X 2 -149 machen. Anstelle von 1,0 X 2 -127. Was wir hätten gehabt, wenn die Nummer normalisiert worden wäre. So konnten wir 22 Größenordnungen kleiner werden, indem wir Präzisionsprägungen opferten. Warum -126 und nicht -127 Wenn der Exponent-Bitstring 0 8 ist. Dies ist dem Exponenten -126 zugeordnet. Dennoch ist für normalisierte IEEE 754 Einzelpräzisions-Gleitkommazahlen die Vorspannung auf dem Exponenten -127. Warum ist es -126 statt -127. Um diese Frage zu beantworten, müssen wir die kleinste positiv normierte Zahl betrachten. Dies geschieht mit dem folgenden Bitstring-Muster. Dieser Bitstring ist auf 1,0 x 2 -126 abgebildet. Schauen wir uns die beiden Möglichkeiten für die größten positiv denormalisierten Zahlen an. 0. (1 23) x 2 -127 (Exponent ist 127) 0. (1 23) x 2 -126 (Exponent ist 126 - das ist was in IEEE 754 Single Präzision wirklich verwendet wird) Beide Entscheidungen sind kleiner als 1,0 x 2 -126 Die kleinste normalisiert (insbesondere beachten Sie, dass die Zahl mit dem Exponenten von -126 kleiner ist). Das ist gut, weil wir eine Überschneidung zwischen normalisierten und denormalisierten Zahlen vermeiden wollen. Beachten Sie auch, dass die Zahl mit dem -126 als Exponent größer ist als die Zahl, die -127 als Exponent hat (beide haben die gleiche mantissasignificand und -126 ist größer als -127). Somit ist durch die Kommissionierung von -126 anstelle von -127 die Lücke zwischen der größten denormalisierten Zahl und der kleinsten normalisierten Zahl kleiner. Ist das ein notwendiges Merkmal Ist es wirklich notwendig, diese Lücke zu machen klein Vielleicht nicht, aber zumindest theres einige Begründung hinter der Entscheidung. Konvertieren von Normalisierung von Base 10 zu IEEE 754 Lets konvertieren 10.25 von Base 10 auf IEEE 754 Single Präzision. Heres die Schritte: Umwandeln Sie die Zahl links von der Radix-Punkt auf Basis 2 Konvertieren Sie die Zahl rechts von der Radix-Punkt auf Basis 2. Dies ergibt 1010 0,01, das ist 1010.01. Schreiben Sie dies in binärer wissenschaftlicher Notation. Das ist 1010.01 X 2 0. Das ist 1.01001 X 2 3. Schreiben Sie dies in IEEE 754 Einzelpräzision. Das ist 1010.01 X 2 0. Das ist 1.01001 X 2 3. Konvertieren Sie 3 in die richtige Vorspannung. Da die Bias 127 ist, füge 127 zu 3 hinzu, um 130 zu bekommen und in Binär umzuwandeln. Dies erweist sich als 1000 0010. Notieren Sie die Nummer in der korrekten Darstellung Beachten Sie, dass die versteckte 1 nicht in der Fraktion dargestellt wird. Ein Algorithmus zum Schreiben Positiver Exponent in Excess 127 Konvertieren von 130 in Binärdatei scheint ein bisschen schmerzhaft. Es scheint viele Schritte zu erfordern. Allerdings gibt es eine ziemlich einfache Möglichkeit, positive Exponenten in Binär umzuwandeln. Zuerst profitieren wir von der folgenden Tatsache: 1000 0000 Karten zu Exponent 1 in über 127. Wenn dies überschritten wurde 128, würde es auf 0. Es wäre schön, in der Tat, wenn es überschüssig 128 wäre, denn dann würden wir Schreibe die positive Zahl in unsigned binär, dann kippe das bedeutendste Bit von 0 auf 1 und wed getan. (Überprüfen Sie dies für sich selbst mit einem Beispiel oder zwei). Allerdings sind überschüssige 127 und überschüssige 128 nur off-by-one, also ist es nicht zu schwer, den Algorithmus entsprechend anzupassen. Heres was du tust, um positive Exponenten zu über 127 zu konvertieren. Subtrahiere 1 vom positiven Exponenten. Konvertieren Sie die Nummer in unsigned binary, mit 8 Bits. Flip das MSb zu 1 Zum Beispiel hatten wir einen Exponenten von 3 im vorherigen Beispiel. Subtrahieren Sie 1, um 2 zu bekommen, konvertieren Sie zu UB, um 0000 0010 zu erhalten. Flip die MSb, um 1000 0010 zu bekommen. Das ist die Antwort aus dem vorherigen Abschnitt. Bevor Sie diesen Algorithmus merken, sollten Sie wirklich versuchen zu verstehen, woher es kommt. Hier kommt es her. Betrachten wir einen positiven Exponenten, x. Dargestellt in der Basis 10. Um sie auf über 127 umzuwandeln, fügen wir 127 hinzu. So haben wir x 127. Wir können dies wie folgt schreiben: (x - 1) 128. Das ist einfache Algebra. 128 ist 1000 0000 in binär. Und wir haben x - 1. Woher kommt die Subtraktion von 1. Solange x - 1 kleiner als 128 ist (und es wird sein, da der maximale Wert von x 128 ist), dann ist es einfach, diese Binärzahl auf 1000 0000 hinzuzufügen. Denken Sie daran, dass das Auswendiglernen eine schlechte Sekunde zum Verständnis ist. Es ist besser zu verstehen, warum etwas funktioniert, als eine Antwort zu merken. Allerdings ist es noch besser zu verstehen, warum etwas funktioniert und auch daran erinnern. Konvertieren von Denormalisierten von Base 10 zu IEEE 754 Angenommen, Sie werden gebeten, 1,1 x 2 -128 auf IEEE 754 einzeln zu konvertieren. Wie würdest du das tun Wenn du nicht vorsichtig bist, denkst du vielleicht, dass die Nummer normalisiert ist, und du kannst diese mit einer vorherigen Prozedur in eine normalisierte Nummer umwandeln. Youd wird stecken, um den Exponenten zu konvertieren, weil youd die Zahl negativ aussagt, und die Zahl muss nicht negativ sein, wenn man von der Basis 10 (nach Hinzufügen der Bias) zu UB umwandelt. Sie können sich diese Mühe sparen, wenn Sie sich erinnern, dass die kleinste, positiv normierte Zahl einen Exponenten von -126 hat und dass der Exponent, den wir haben, -128 ist, der kleiner als -126 ist. Wenn du die Zahl in binärer wissenschaftlicher Notation (in kanonischer Form) geschrieben hast und der Exponent weniger als -126 ist, dann hast du eine denormalisierte Zahl. Da -128 lt -126, die Zahl versuchten zu repräsentieren, ist eine denormalisierte Zahl. Die Regeln für die Darstellung der denormalisierten Zahlen unterscheiden sich von der Darstellung normalisierter Zahlen. Um eine denormalisierte Zahl darzustellen, musst du den Radixpunkt verschieben, so dass der Exponent -126 ist. In diesem Fall muss der Exponent um 2 von -128 auf -126 erhöht werden, so dass der Radix-Punkt nach links verschoben werden muss. Dies ergibt: 0.011 x 2 -126 An dieser Stelle ist es leicht zu konvertieren. Der Exponent-Bitstring ist 0 8. Sie kopieren die Bits nach dem Radixpunkt in den Bruchteil. Das Zeichenbit ist 0. Kein Unsigned Float Im Gegensatz zu Ints gibt es keinen unsignierten Float. Ein Grund dafür kann die komplizierte Art der Darstellung von Gleitkommazahlen sein. Wenn wir das Zeichen-Bit loswerden, wie würden wir es verwenden, würden wir dem Exponenten noch ein Bit hinzufügen, das wäre am sinnvollsten, da es neben dem Exponenten sitzt, aber die Bias müsste geändert werden. Wir könnten dem Bruch noch etwas hinzufügen. Zumindest würde das die geringste Störung verursachen. Würde das eine additonale bit uns auf irgendeine gemeinste Weise helfen, einerseits erlaubt es uns, doppelt so viele Gleitkommazahlen darzustellen. Auf der anderen Seite tut dies, indem man ein einziges Stück Präzision hinzufügt. Vielleicht durch diese Art von Argumentation, die Entwickler der IEEE 754 Standard fühlte, dass mit einem unsigned Schwimmer nicht sinnvoll, und damit gibt es keine unsigned Schwimmer in IEEE 754 Gleitkomma. Warum Zeichen Bit, Exponent, dann Fraktion Wenn man sich die Darstellung für IEEE 754 anschaut, bemerken Sie, dass sein Zeichen Bit, dann Exponent, dann Fraktion. Warum ist es in dieser Reihenfolge heres eine plausible Erklärung. Angenommen, Sie wollen zwei Termine vergleichen. Das Datum umfasst Monat, Tag und Jahr. Sie verwenden zwei Ziffern für den Monat, zwei für den Tag und vier für das Jahr. Angenommen, Sie möchten das Datum als String speichern und möchten den String-Vergleich verwenden, um die Daten zu vergleichen. Welchen Orden sollst du wählen, du sollst das Jahr, den Monat und den Tag wählen. Warum denn wenn du String-Vergleich machst, vergibst du von links nach rechts, und du willst die bedeutendste Menge nach links. Das ist das Jahr. Wenn man sich eine Fließkommazahl ansieht, ist der Exponent der wichtigste, also der links vom Bruchteil. Sie können auch Vergleiche machen, weil der Exponent in der Bias-Notation geschrieben ist (Sie könnten auch zwei Komplemente verwenden, obwohl es den Vergleich nur ein wenig komplizierter machen würde). Also warum ist das Zeichen bis weit links. Vielleicht ist die Antwort, weil das ist, wo es in signierter int Darstellung erscheint. Es kann ungewöhnlich sein, das Zeichen in einer anderen Position zu haben. Nach dem Lesen und Üben sollten Sie in der Lage sein, die folgenden zu tun: Geben Sie die Namen jeder der fünf Kategorien von Gleitkommazahlen in IEEE 754 einzigen Präzision. Angesichts einer 32-Bitstring, bestimmen Sie, welche Kategorie der Bitstring fällt. Bei einer normalisierten oder denormalisierten Zahl schreiben Sie die Zahl in die kanonische binäre wissenschaftliche Notation (Sie können den in der Basis 10 geschriebenen Exponenten verlassen). Angesichts einer Zahl in Basis 10 oder kanonische binäre wissenschaftliche Notation, wandeln sie in eine IEEE 754 Single-Präzision Gleitkommazahl. Wissen, welche Bias für normalisierte Zahlen verwendet wird. Wissen, welcher Exponent für denormalisierte Zahlen verwendet wird. Wisst, was die verborgenen 1 ist. Excess Notation: Diese feste Länge Notation (dh die Länge des verwendeten Bitmusters kann nicht geändert werden, sobald es am Anfang gesetzt ist) ermöglicht es, negative (-) und nicht-negative (einschließlich Null) Werte, indem sie die rechtszähligsten Ziffern bezeichnen, die als das bedeutendste Bit (MSB) bezeichnet werden, um das Zeichen der Zahl darzustellen. In überschüssiger Notation steht das MSB, das auch als das Zeichenbit von 1 bezeichnet, für das nicht-negative () - Zeichen und 0 bedeutet eine negative (-) Zahl. Beachten Sie die beiden folgenden Beispiele. Beispiel 1. Im Fall eines 4-Bit-Musters, zum Beispiel: 0 110 ist der Ziffernspaltenwert des höchstwertigen Bits 8. Es werden also 4-Bit-Muster als Überschuss (8) - Anzeige bezeichnet. Um dieses Beispiel zu konvertieren, findest man den Summenwert des gesamten Musters, als ob eine Standard-Binärzahl: Beispiel 2. Im Fall eines 5-Bit-Musterbeispiels 1 1110 ist der Ziffernspaltenwert des höchstwertigen Bits 16. also 5- Bitmuster werden als überschüssige (16) Notation bezeichnet. Um dieses Beispiel zu konvertieren, findest man den Summenwert des gesamten Musters, als ob eine Standard-Binärzahl: (1x16) (1x8) (1x4) (1x2) (0x1) 16 8 4 2 0 30 Dann den aktuellen Überschusswert 16 abziehen Die Summe, (30 16) Das Ergebnis ist ein signierter Wert, 14. Daher ist es offensichtlich, dass das Zeichenbit von 0 das überschüssige Merkmal darstellt, das negative Vorzeichen und 1 das nicht-negative Vorzeichen darstellt, um einen signierten Wert zu bezeichnen.


Comments