Saturday, 10 June 2017

Sign Magnitude Darstellung Binär Optionen

Signiert Int: Signierte Größe Einleitung Wenn jemand gerade über unsigned int gelernt hatte, und Sie baten sie, einen Weg zu finden, um negative Zahlen zu repräsentieren, würde ich glaube, die überwiegende Mehrheit von ihnen würde erfinden signierte Größe. Das Konzept der signierten Größe ist einfach genug. Das höchstwertige Bit des Vorzeichenbits bilden. Wenn dieses Bit 1 ist, dann ist der Wert negativ. Wenn seine 0 ist, ist der Wert positiv. Base Zehn zu signierter Größe Heres der Algorithmus, um Basis 10 (Dezimal) in signierte Größe unter Verwendung von N Bits zu konvertieren. Von nun an, auch die Anzahl der Bits, wenn reden über Darstellungen. Somit ist seine nicht nur signierte Größe, sondern signierte Größe unter Verwendung von N Bits. Ignorieren Sie das Minuszeichen (wenn es angezeigt wird) und konvertieren Sie den Wert der Basis 10 in binär. Wenn die Binärdarstellung keine N-1 Bits hat, füllen Sie sie zu N-1 Bits mit 0s auf. Wenn beispielsweise die Binärdarstellung nur k Bits benötigt, setzen Sie b (N-2) - k auf 0 (N-2) - k, wobei 0 N N Nullen bedeutet. (Dies ist, wo seine nützlich, um ein Bitstring als Zeichenfolge zu denken). Wenn der Wert positiv ist, machen Sie b N-1 0. Wenn seine negative, dann machen b N-1 1. Es ist nicht so schwer wirklich. Für einen 32-Bit-Bitstring, wandeln Sie den Wert in unsigned 31-Bit-Bitstring, und fügen Sie ein Zeichen-Bit, um das Zeichen anzuzeigen. Verwenden Sie SM als Kurzform für signierte Größe, so dass ich nicht zu schreiben, die aus jeder einzelnen Zeit. SM zu Base 10 Konvertieren von SM auf Base 10 ist nicht so schwer. Sein das umgekehrte Verfahren. Man betrachte nur die unteren N-1 Bits der Zahl, d. h. b (N-2) -0. (Das heißt, das Vorzeichenbit ignorieren). Umwandelt das in die Basis 10, die einen nicht-negativen Wert erzeugt. Wenn das Vorzeichenbit 1 ist, dann fügen Sie ein negatives Vorzeichen dem Wert der Basis 10 hinzu. Ansonsten nicht. Ein Beispiel Angenommen, Sie wollen 3 in SM mit 4 Bits darstellen. Da 3 positiv ist, konvertieren Sie es einfach auf Basis 2, um 11 zu erhalten. Jedoch benötigen wir 4 Bits, so dass wir auf 4 Bits setzen, um 0011 zu erhalten. Angenommen, Sie wollen -3 in SM mit 4 Bits darstellen. Da -3 negativ ist, konvertieren Sie 3 bis 3 Bits, ohne Vorzeichen, und Sie erhalten 011. Die Zahl ist negativ, so fügen Sie ein Zeichen Bit von 1, um 1011 zu erhalten. Eine andere Möglichkeit, die gleiche Sache zu tun ist, um 3 bis 4 Bits zu konvertieren , Und drehen Sie das Vorzeichen-Bit. Angenommen, Sie wollen 15 in SM mit 4 Bits darstellen. Die Regel sagt normalerweise, auf Basis 2 zu konvertieren. Dies führt zu 1111. Leider, wenn Sie es zurück konvertieren, thats -7. Also, was ging falsch Es stellt sich heraus, dass 15 ist größer als die größte mögliche darstellbare Zahl mit 4 Bits in SM. Das heißt, Sie CANT repräsentieren 15 mit 4 Bits (Sie können mit 5 Bits). Dies ist ein verbreitetes Phänomen. Da Sie eine endliche Anzahl von Bits haben, haben Sie auch nur eine endliche Anzahl von Werten, die dargestellt werden können. Einige Werte können bei einer bestimmten Anzahl von Bits nicht repräsentiert werden. Nun, im nächsten Abschnitt besprechen, was der Bereich der gültigen Werte sind, gegeben N Bits, so dass Sie wissen, welche Werte können und kann nicht auf SM mit N-Bits übersetzt werden. Wie viele positive / negative Werte Sie wissen, dass jetzt N Bits 2 N verschiedene Bitstrings erzeugt. Wenn die Hälfte davon positiv ist, gibt es 2 N / 2 2 N-1 positive Werte. Es sollten auch 2 N-1 negative Werte, auch. Lässt Fokus auf die positiven Werte. Sie wissen, dass das höchstwertige Bit bereits 0 ist. Das bedeutet wirklich, dass Sie nur N-1 Bits verwenden positive Werte darstellen. Die Frage reduziert sich dann auf, was ist der Maximalwert für N-1 Bits. Die Antwort lautet 2 N-1 - 1 (nur N-1 auf den unsignierten Maximalwert stecken). Glücklicherweise ist es sehr einfach, den Mindestwert zu bestimmen. Machen Sie das Vorzeichen Bit 1 für das Maximum, und sein jetzt der größte (Betrag) negativen Wert. Der Minimalwert ist also - (2 N-1 - 1). Problem: Zwei Zeroes Ein Problem gut laufen in ist SM hat zwei Nullen. Es gibt eine positive Null (dargestellt durch einen Bitstring mit N Nullen) und eine negative Null (dargestellt durch einen Bitstring mit 1 gefolgt von N-1 Nullen). Dies schafft Probleme, weil, wenn Sie vergleichen oder zwei Zahlen hinzufügen möchten, benötigen Sie Hardware zu berücksichtigen. Sein nicht, dass es cant schnell getan werden kann, aber, dass es scheint, Komplikation zu diesem hinzuzufügen, andernfalls bequeme Weise, signierte Ints darzustellen. Eine andere Beobachtung: Wir haben zwei Darstellungen für denselben Wert. Deshalb ist es wichtig, die Anzahl der Werte zu beachten. Wir haben 2 N Darstellungen, aber wir haben 2 N - 1 Werte. Wir haben einen weniger Wert, weil Null zweimal erscheint. Also, es ist nicht so ungewöhnlich, mehr als eine Darstellungen Mapping auf den gleichen Wert zu sehen. Problem: Addition Es wäre schön, wenn das Hinzufügen von signierten Ints war nur wie Hinzufügen unsigned Ints. Auf diese Weise wäre die Hardware zum Hinzufügen unsignierter und signierter Ints gleich. Allerdings funktioniert das nicht. Betrachten Sie zum Beispiel das Hinzufügen von -1 und -1 mit 4 Bits SM. Thats 1001 1001 0010 (da das Ergebnis müssen vier Bits, ignorieren wir den Übertrag von 1, in die b 4, das heißt, normalerweise ist die Antwort 10010, die 5 Bits ist, aber wir ignorieren, dass die meisten signifikanten Bit zu halten Die Antwort auf 4 Bits). Die Antwort ist 2, die falsch ist. Es sollte -2 sein. Eine Möglichkeit um dieses Problem ist, alles hinzuzufügen, aber ignorieren das Vorzeichen-Bit. Dann halten wir das gleiche Zeichen wie vorher. Wenn wir also -1 bis -1 addieren, erhalten wir 2 und erhalten dann das Vorzeichenbit, um -2 zu erhalten. Das funktioniert gut, wenn Sie zwei positive Zahlen und zwei negative Zahlen hinzufügen. Aber was passiert, wenn Sie eine positive und eine negative Zahl hinzufügen. Dann haben Sie Probleme. Fügen Sie beispielsweise 1 zu -1 hinzu, und Sie haben 0001 1001, die zu 1010 oder -2 addiert. Die Antwort sollte 0 sein. Wieder könnte man eine Schaltung entwerfen, die zusätzlich für SM korrekt arbeitet, aber es müsste eine andere Schaltung sein als die, die für unsignierte Ints korrekt hinzufügt. Die Schüler verwechseln oft die folgenden: eine negative Zahl darstellen und einen Wert negieren. Um einen Wert zu negieren bedeutet, dass er einen Wert x annimmt und - x berechnet. Das Ergebnis von - x könnte tatsächlich positiv sein, wenn x negativ ist, um mit zu beginnen. Der Hauptunterschied ist die Darstellung gegenüber der Durchführung einer Operation. Negieren eines Wertes bedeutet, eine Operation durchzuführen. Sie können einen Wert negieren, dann negieren das Ergebnis der Negation und so weiter. Eine Schlüssel-Eigenschaft der Negation ist: xx. Das heißt, wenn Sie x zweimal negieren, erhalten Sie den ursprünglichen Wert wieder. Glücklicherweise ist es ganz einfach, eine SM-Nummer zu negieren. Sie spiegeln das höchstwertige Bit. Ein Flip ein wenig bedeutet, es mit seinem entgegengesetzten Wert zu ersetzen. Folglich erzeugt das Spiegeln von 0 eine 1. Das Spiegeln von 1 erzeugt eine 0. Wir können dies als b N-1 b N-1 (für eine N-Bit-SM-Darstellung) schreiben. Die Primzahl (die wie ein Apostroph aussieht) ist die Negation. Dies ist logisch NICHT, die Sie in einem diskreten Mathe-Kurs gesehen haben sollten. Die Primzahl erscheint RICHTIG für das Bit es negating. Before durch diesen Abschnitt, stellen Sie sicher, Sie verstehen über die Darstellung von Zahlen in binärer. Sie können die Seite auf numerische Darstellung lesen, um zu überprüfen. Dieses Dokument stellt Ihnen die Methoden zum Hinzufügen und Multiplizieren von Binärzahlen vor. In jedem Abschnitt wird das Thema entwickelt, indem zuerst die binäre Darstellung von unsignierten Zahlen (die am leichtesten zu verstehen sind), gefolgt von signierten Zahlen und Finishing mit Brüchen (am schwersten zu verstehen) betrachtet werden. In den meisten Fällen behandeln wir das Hinzufügen unsigned Zahlen Hinzufügen unsigned Zahlen in binär ist ganz einfach. Denken Sie daran, dass mit 4-Bit-Zahlen Zahlen von 0 bis 15 dargestellt werden können. Die Addition erfolgt genau wie das Hinzufügen von Dezimalzahlen, außer dass Sie nur zwei Ziffern (0 und 1) haben. Die einzige Zahl, die man sich merken kann, ist, dass 00 0, ohne Übertrag, 10 1, ohne Carry, 01 1, ohne Carry, 11 0 und Sie eine 1 tragen, um so die Zahlen 06 10 0110 2 und 07 10 hinzuzufügen 0111 2 (Antwort 13 10 1101 2) können wir die Berechnung ausgeben (die Ergebnisse eines beliebigen Trages werden in der oberen Zeile kursiv dargestellt). Offensichtlich sind beide Ergebnisse falsch, aber in diesem Fall Überlauf ist schwerer zu erkennen. Aber Sie können sehen, dass, wenn zwei Zahlen mit dem gleichen Vorzeichen (entweder positiv oder negativ) hinzugefügt werden und das Ergebnis das entgegengesetzte Vorzeichen hat, ein Überlauf aufgetreten ist. Typischerweise können DSPs, einschließlich der 320C5x, etwas mit diesem Problem umgehen, indem sie etwas verwenden, das Sättigungsarithmetik genannt wird. In denen Ergebnisse, die zu einem Überlauf führen, durch entweder die am meisten positive Zahl (in diesem Fall 7) ersetzt werden, wenn der Überlauf in der positiven Richtung ist, oder durch die negativste Zahl (-8) für Überläufe in der negativen Richtung. Es ist nicht weiter schwierig, zwei signierte Fraktionen hinzuzufügen. Nur die Interpretation der Ergebnisse unterscheidet. Betrachten Sie z. B. die Addition von zwei Q3-Nummern (vergleiche das Beispiel mit zwei 4-Bit-Vorzeichen). Wenn Sie sorgfältig auf diese Beispiele schauen, sehen Sie, dass die binäre Darstellung und Berechnungen die gleichen wie vorher sind. Hat sich nur die Dezimaldarstellung geändert. Dies ist sehr nützlich, weil es bedeutet, dass wir die gleiche Schaltung für die Addition verwenden können, unabhängig von der Interpretation der Ergebnisse. Sogar die Erzeugung von Überläufen, die zu Fehlerbedingungen führen, bleibt unverändert (siehe oben) Multiplizieren von unsignierten Zahlen Das Multiplizieren von unsignierten Zahlen in Binärdateien ist recht einfach. Es sei daran erinnert, dass mit 4-Bit-Zahlen Zahlen von 0 bis 15 dargestellt werden können. Die Multiplikation kann genau wie bei Dezimalzahlen durchgeführt werden, außer dass Sie nur zwei Ziffern (0 und 1) haben. Die einzigen Zahlen, die man sich merken muss, sind 010 und 111 (dies ist das gleiche wie ein logisches Quotandot). Die Multiplikation unterscheidet sich von der Addition, indem die Multiplikation einer n Bitzahl um eine m Bitzahl zu einer nm Bitzahl führt. Werfen wir einen Blick auf ein Beispiel, wo nm4 und das Ergebnis ist 8 Bits In diesem Fall das Ergebnis war 7 Bit, die auf 8 Bits, indem eine 0 auf der linken Seite verlängert werden kann. Beim Multiplizieren größerer Zahlen ergibt das Ergebnis 8 Bits, wobei der linke Satz auf 1 gesetzt ist. Solange es NM Bits für das Ergebnis gibt, besteht keine Möglichkeit eines Überlaufs. Für 2 Vier-Bit-Multiplikanden ist das größtmögliche Produkt 1515225, was in 8 Bits dargestellt werden kann. Multiplizieren von signierten Zahlen Es gibt viele Methoden, um 2s Komplementzahlen zu multiplizieren. Am einfachsten ist es, einfach die Größe der beiden Multiplikanden zu finden, diese zu multiplizieren und dann die Vorzeichen-Bits zu verwenden, um das Vorzeichen des Ergebnisses zu bestimmen. Wenn die Multiplikanden dasselbe Vorzeichen hatten, muß das Ergebnis positiv sein, wenn sie unterschiedliche Zeichen haben, ist das Ergebnis negativ. Die Multiplikation mit Null ist ein Spezialfall (das Ergebnis ist immer Null, ohne Vorzeichenbit). Wie Sie vielleicht erwarten, kann die Multiplikation von Brüchen genauso erfolgen wie die Multiplikation mit Vorzeichen. Die Größen der beiden Multiplikanden werden multipliziert und das Vorzeichen des Ergebnisses wird durch die Vorzeichen der beiden Multiplikanden bestimmt. Es gibt ein paar Komplikationen bei der Verwendung von Fraktionen beteiligt. Obwohl es fast unmöglich ist, einen Überlauf zu erhalten (da die Multiplikanden und Ergebnisse in der Regel eine Größe kleiner als eins haben), ist es möglich, einen Überlauf zu erhalten, indem -1x-1 multipliziert wird, da das Ergebnis 1 ist, was nicht durch feste dargestellt werden kann Punktzahlen. Die andere Schwierigkeit besteht darin, dass die Multiplikation zweier Q3-Zahlen offensichtlich zu einer Q6-Zahl führt, aber wir haben 8 Bits in unserem Ergebnis (da wir zwei 4-Bit-Zahlen multiplizieren). Das bedeutet, dass wir mit zwei Bits links vom Dezimalpunkt enden. Diese Zeichen sind verlängert, so daß sie bei positiven Zahlen beide Null sind und bei negativen Zahlen beide Eins sind. Betrachten Sie den Fall der Multiplikation von -1/2 mit -1/2 (mit der Methode aus dem Lehrbuch):


No comments:

Post a Comment