Mindmap-Galerie Kapitel 2 Datendarstellung und -betrieb
Dies ist eine Mindmap über die Darstellung und Operation von Daten in Kapitel 2, einschließlich Zahlensystem und Codierung, Operationsmethoden und Operationsschaltungen, Darstellung und Operation von Gleitkommazahlen usw.
Bearbeitet um 2024-01-16 15:53:26Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Kapitel 2 Datendarstellung und -betrieb
Datendarstellung und Operationen
Zahlensystem und Codierung
Umrechnung zwischen verschiedenen Basiszahlen
Konvertieren Sie eine Dezimalzahl in eine beliebige Basiszahl
Division durch Basis- und Restmethode (Umwandlung des ganzzahligen Teils)
Multiplikationsbasis-Rundungsmethode (Umwandlung des Dezimalteils)
Denken Sie in Verbindung mit den numerischen Darstellungsformeln von R-Basis-Zahlen, anstatt sie auswendig zu lernen.
Originalcode, Komplementcode, Umkehrcode, Rahmencode
Ursprüngliche Codedarstellung
Das Vorzeichenbit positiver Zahlen wird durch 0 dargestellt, das Vorzeichenbit negativer Zahlen wird durch 1 dargestellt und das Wertbit bleibt unverändert.
Komplementdarstellung
Zwei Möglichkeiten, das Komplement einer negativen Zahl zu finden
Komplementcode-Methode: Wenn x ≤ 0 ist, ist das Vorzeichenbit 1, das Komplementdatenbit ist gleich dem wahren Wertdatenbit, das Bit für Bit invertiert wird, und das letzte Bit wird um eins addiert. Diese Methode kann durch bewiesen werden Vergleich der Komplement- und Komplementformeln.
Abtastmethode: Wenn x ≤ 0 ist, ist das Vorzeichenbit 1 und die Datenbits mit dem wahren Wert werden der Reihe nach von rechts nach links gescannt. Die erste 1 von rechts und die 0 von rechts bleiben unverändert und die restlichen Bits werden negiert.
Komplementschreibweise
Das Vorzeichenbit ist dasselbe wie der Originalcode. Wenn der wahre Wert eine positive Zahl ist, ist der Komplementcode derselbe wie der Originalcode. Wenn der wahre Wert eine negative Zahl ist, ist das Wertbit des Komplementcodes die Umkehrung des wahren Wertbits.
Frameshift-Notation
Der Frameshift und das Komplement eines wahren Werts unterscheiden sich nur um ein Vorzeichenbit.
Darstellungsbereich für Festkommazahlen
Arithmetische Methoden und Rechenschaltungen
Operator
Arithmetische Logikeinheit (ALU)
ALUop ist das Betriebskontrollterminal, mit dem die von der ALU ausgeführten Verarbeitungsfunktionen bestimmt werden.
interne Prinzipien
Alle logischen und arithmetischen Operationsschaltungen laufen gleichzeitig, und mehrere Operationsergebnisse werden jeweils an das Eingangsende des Multiplexers gesendet, und AluOp wählt einen der Ergebnisausgänge aus.
Die Grundstruktur des Operators
Einzelbus-Strukturbetreiber
Um Datenkonflikte zu vermeiden, kann gleichzeitig nur ein Datenwert auf dem Bus übertragen werden, die ALU verfügt jedoch über zwei Operanden. Aus diesem Grund müssen am ALU-Eingangsende zwei Pufferregister gesetzt werden.
Es dauert 3 Taktzyklen, um die Operation der beiden Allzweckregisteroperanden abzuschließen und das Ergebnis zurückzuschreiben
Im ersten Taktzyklus muss der Operand des allgemeinen Registers an LA gesendet werden. Wenn der Takttrigger eintrifft, ist die Aktion zum Senden des Operanden an LA abgeschlossen.
Der zweite Taktzyklus muss den Vorgang des Sendens eines weiteren allgemeinen Registeroperanden an LB abschließen und die Signale Ri → IB1, IB1 → LB müssen gegeben werden.
Der dritte Taktzyklus erfordert das Operationsauswahl-Steuersignal AluOp und das allgemeine Register-Rückschreibsteuersignal IB1 → Ri.
Betreiber mit Dual-Bus-Struktur
Um zu verhindern, dass die Ausgabeergebnisse der ALU direkt an den Bus IB1 gesendet werden und Datenkonflikte verursachen, wird zwischen dem Ausgang der ALU und dem IB1-Bus ein Pufferregister L eingerichtet, um die Operationsergebnisse vorübergehend zu speichern.
Es dauert zwei Taktzyklen, um den Vorgang abzuschließen
Der erste Taktzyklus gibt die Signale Ri→ IB1 und Ri→ IB2 aus, um die beiden Registeroperanden auszugeben. Gleichzeitig wird das ALU-Operationssteuersignal AluOp gegeben, um die Daten zu steuern, um korrekte Operationen auszuführen Die Ergebnisse werden automatisch in den Puffer im Register L geschrieben.
Der zweite Taktzyklus sendet die Daten in L an den IB1-Bus, wodurch die Signale L → IB1, IB1 → Ri ausgegeben werden, und in Zusammenarbeit mit dem Taktsignal werden die Daten in das allgemeine Register zurückgeschrieben.
Betreiber einer Drei-Bus-Struktur
Der Zweck der Umgehung besteht darin, Daten zwischen Allzweckregistern zu übertragen, ohne die ALU zu durchlaufen.
Die Drei-Bus-Struktur kann gleichzeitig die Signale Ri→ IB1, Ri→ IB2, AluOp, IB3 → Ri bereitstellen und den Vorgang in Zusammenarbeit mit Taktzyklen abschließen. Der gesamte Vorgang erfordert nur einen Taktzyklus.
Die Geschwindigkeit ist die schnellste unter den drei Strukturen und erfordert keine Pufferregister, aber ihre allgemeine Registerdatei muss zwei Leseports und einen Schreibport bereitstellen.
Festkomma-Verschiebungsoperationen
arithmetische Verschiebung
Das Objekt der arithmetischen Verschiebung ist eine vorzeichenbehaftete Zahl, und das Vorzeichenbit bleibt während des Verschiebungsvorgangs unverändert.
Das Verschieben um ein Bit nach links entspricht einer Multiplikation mit 2, wenn kein Überlauf auftritt.
Eine Verschiebung um eine Stelle nach rechts entspricht einer Division durch 2, wenn die letzte durch die Verschiebung gerundete Ziffer nicht berücksichtigt wird.
Das Vorzeichenbit einer arithmetischen Verschiebung bleibt immer unverändert!
Die Überlaufbeurteilungsbedingung der arithmetischen Schiebeoperation lautet: Die arithmetische Linksverschiebung des ursprünglichen Codes verschiebt das Bit um 1, oder die komplementäre arithmetische Linksverschiebung verschiebt das Bit mit dem entgegengesetzten Vorzeichen.
logischer Wandel
Logische Verschiebungen behandeln Operanden als vorzeichenlose Zahlen.
Verschiebungsregeln: Wenn die Logik nach links verschoben wird, wird das High-Bit verschoben und das Low-Bit mit 0 addiert; wenn die Logik nach rechts verschoben wird, wird das Low-Bit verschoben und das High-Bit mit 0 addiert.
kreisförmige Verschiebung
Addition und Subtraktion von Festkommazahlen
Zweierkomplement-Additions- und Subtraktionsoperationen
Fügen Sie n Inverter zum Y-Eingangsende des ursprünglichen Addierers hinzu, um die Funktion der Invertierung jedes Bits zu realisieren, und fügen Sie dann einen 2-zu-1-Multiplexer hinzu, der von einem Steueranschluss Sub gesteuert wird, um den ursprünglichen Code Y auszuwählen, der in den eingegeben werden soll Addierer. Oder invertieren Sie jedes Bit von Y und geben Sie es in den Addierer ein und senden Sie gleichzeitig den Steueranschluss Sub als Low-Bit-Übertrag an den Addierer.
Überlauferkennung Ein Überlauf ist nur möglich, wenn zwei Zahlen mit demselben Vorzeichen addiert werden.
(1) Erkennen Sie basierend darauf, ob das Vorzeichenbit des Operanden und das Operationsergebnis konsistent sind.
Es läuft über, wenn das Positive zum Negativen und das Negative zum Positiven wird.
(2) Erkennen Sie danach, ob der Übertrag des höchsten Datenbits und das Vorzeichenbit während der Operation konsistent sind.
Wenn der Übertrag des höchsten Datenbits während der Operation nicht mit dem Übertrag des Vorzeichenbits übereinstimmt, kommt es zu einem Überlauf des Operationsergebnisses.
(3) Doppelte Vorzeichenbits verwenden
Das höchste Vorzeichenbit repräsentiert das tatsächliche Vorzeichen.
Beispiel für einen C-Sprachoperationsüberlauf
Festkomma-Multiplikations- und Divisionsoperationen
Festkommamultiplikation
Ein-Bit-Multiplikation des Originalcodes
Einerkomplementmultiplikation (Booth-Algorithmus)
Operation der Festkommadivision
Originalcode-Divisionsoperation (Restmethode ohne Wiederherstellung)
Zweierkomplement-Divisionsoperation (alternierende Additions- und Subtraktionsmethode)
Ganzzahltypen und Typkonvertierung in der C-Sprache
Konvertierung von vorzeichenbehafteten und vorzeichenlosen Zahlen
Die Bitwerte bleiben unverändert, nur die Art und Weise, wie die Bits interpretiert werden, ändert sich.
Konvertierung zwischen ganzen Zahlen unterschiedlicher Wortlänge
Wenn eine Variable mit großer Wortlänge gezwungen wird, in eine Variable mit kleiner Wortlänge einzutreten, schneidet das System die redundanten High-Bits direkt ab und weist die Low-Bits direkt zu.
Bei der Konvertierung von kurzer Wortlänge auf lange Wortlänge müssen nicht nur die entsprechenden Bitwerte angeglichen, sondern auch der höherwertige Teil erweitert werden.
Wenn die ursprüngliche Zahl eine ganze Zahl ohne Vorzeichen ist, wird sie um Nullen erweitert und die höherwertigen Teile nach der Erweiterung werden mit Nullen aufgefüllt.
Andernfalls wird eine Vorzeichenerweiterung durchgeführt und der erweiterte höherwertige Teil mit dem Vorzeichenbit der ursprünglichen Zahl gefüllt.
Das Wesentliche ist die Vorzeichenerweiterung des Komplementcodes
Datenspeicherung und -anordnung
„Big Endian“- und „Little Endian“-Speicherung von Daten
Die Maschinennummer einer Variablen vom Typ int i ist 01 23 45 67H, ihr höchstwertiges Byte ist MSB = 01H und ihr niedrigstwertiges Byte ist LSB = 67H.
Die Daten werden „grenzorientiert“ gespeichert
Randausrichtung
Grenzen nicht ausgerichtet
Für Daten mit einer Länge von einem Byte gibt es kein Problem der Grenzausrichtung
Darstellung und Operationen von Gleitkommazahlen
Darstellung von Gleitkommazahlen
Normalisierung von Gleitkommazahlen
Linkshänder-Regel: Wenn die höchste Ziffer der Mantisse des Operationsergebnisses keine signifikante Ziffer ist, also in der Form ±0,0…0x…x, ist eine Linkshänder-Regel erforderlich. Bei der Linkshänder-Regel wird der Exponentencode jedes Mal, wenn die Mantisse um eine Position nach links verschoben wird, um 1 verringert (wenn die Basis 2 ist). Die linke Regel muss möglicherweise mehrmals ausgeführt werden.
Berechnung auf der rechten Seite: Wenn die signifikante Ziffer der Mantisse des Operationsergebnisses vor dem Dezimalpunkt liegt, ist eine Berechnung auf der rechten Seite erforderlich. Verschieben Sie die Mantisse um eine Position nach rechts und addieren Sie 1 zum Exponenten (wenn die Basis 2 ist). Wenn Sie die richtige Richtung anpassen müssen, müssen Sie dies nur einmal tun.
IEEE754-Standard
IEEE754-Addition und Subtraktion von Gleitkommazahlen
(1) Bei der Normalisierung der Bestellsumme übernimmt die Operation des Bestellcodes die Additions- und Subtraktionsoperationsregeln der Rahmenverschiebung.
„Die kleinen Schritte sollten mit den großen Schritten in Einklang gebracht werden“
(2) Die Operation der Mantisse übernimmt die ursprünglichen Code-Operationsregeln, und die verborgenen Bits müssen an der Mantissenoperation teilnehmen.
(3) Versteckte Bits nehmen an der Mantissennormalisierungsbeurteilung und dem Mantissennormalisierungsprozess teil.
Wenn die Mantisse die Form 1....... hat, handelt es sich um eine standardisierte Mantisse.
Wenn die Mantisse die Form 1×.… hat, muss sie einmal nach rechts normalisiert werden, das heißt, die Mantisse wird um eine Position nach rechts verschoben und der Exponentencode wird um 1 erhöht.
Wenn die Mantisse die Form 0 ... hat, müssen Sie sie nach links normalisieren, die Mantisse nach links verschieben und die Mantisse jedes Mal um 1 Bit nach links verschieben und gleichzeitig den Exponenten reduzieren um 1, bis die Mantisse die Form 1 hat...
(4) Rundungsverarbeitung: In IEEE754 gibt es hauptsächlich die folgenden Rundungsmethoden.
Das letzte Bit wird immer auf 1 gesetzt. Methode: Solange eines der durch die Verschiebung verlorenen Bits 1 ist, wird das niedrigste Bit des Operationsergebnisses auf 1 gesetzt, unabhängig davon, ob das niedrigste Bit ursprünglich 0 oder 1 war.
0-1-Rundungsmethode: Wenn die höchste Ziffer der fehlenden Ziffer 1 ist, addieren Sie 1 zur letzten Ziffer der Mantisse, ähnlich wie beim Runden von Dezimalzahlen.
Kürzungsmethode: Die erforderliche Anzahl von Ziffern direkt abfangen und alle nachfolgenden Ziffern verwerfen. Dieser Rundungsprozess ist der einfachste.
(5) Überlaufurteil.
Der Überlauf von Gleitkommaoperationen kann anhand des Überlaufs des Exponentencodes beurteilt werden. Bei IEEE754-Gleitkommazahlen mit einfacher Genauigkeit tritt ein Normalisierungsüberlauf auf, wenn die Normalisierung nach rechts dazu führt, dass der Exponent alle 1 ist (d. h. 11111111, der wahre Wert ist 128). Ein Normalisierungsunterlauf tritt auf, wenn die Normalisierung nach links dazu führt, dass der Exponent nur aus Nullen besteht.
Wenn bei Gleitkommaoperationen der Exponent überläuft, bedeutet dies, dass das Operationsergebnis überläuft.
Vorgänge, die einen Überlauf verursachen können
Rechts- und Mantissenrundung. Beim Runden einer sehr großen Mantisse kann es aufgrund der Hinzufügung von 1 zur letzten Ziffer zu einem Mantissenüberlauf kommen. In diesem Fall müssen Sie die Mantisse und die Reihenfolge mithilfe der rechten Regel anpassen. Das Hinzufügen von 1 zur Ordnung auf der rechten Seite führt zu einer Erhöhung der Ordnung. Daher muss festgestellt werden, ob ein exponentieller Überlauf aufgetreten ist.
Linke Herrschaft. Wenn die linke Regel die Reihenfolge um 1 verringert, nimmt die Reihenfolge ab. Daher muss festgestellt werden, ob ein exponentieller Unterlauf aufgetreten ist. Die Beurteilungsregel ähnelt der des Indexüberlaufs. Wenn Sie einmal nach links drehen, wird der Exponentencode um 1 dekrementiert und dann beurteilt, ob der Exponentencode vollständig 0 ist, um festzustellen, ob der Exponent unterläuft.
Indexüberlauf und Indexunterlauf
Wenn ein positiver Index den maximal zulässigen Wert (127 oder 1023) überschreitet, kommt es zu einem Indexüberlauf und einer Ausnahme.
Wenn ein negativer Exponent den minimal zulässigen Wert (-126 oder -1022) überschreitet, kommt es zu einem Exponentenunterlauf und das Ergebnis wird normalerweise als Maschinennullpunkt behandelt.
Gleitkommatyp in C-Sprache
Erzwungene Typkonvertierung zwischen int, float und double
double→float
Bei der Konvertierung großer Zahlen kann es zu einem Überlauf kommen, und bei der Konvertierung hochpräziser Zahlen kann es zu Rundungen kommen.
float/double→int
Der Dezimalteil wird gerundet und große Zahlen können bei der Konvertierung überlaufen.
float→double
Da die Mantissen- und Exponentenbreite von Double-Typ-Daten größer ist als die von Float-Typ-Daten, ist ihr Darstellungsbereich größer und die Genauigkeit höher. Die konvertierten Double-Typ-Daten entsprechen vollständig den ursprünglichen Float-Typ-Daten.
int→float
Beide Typen sind 32-Bit und die Anzahl der Zustände, die sie darstellen, ist gleich. Die durch die beiden auf der Zahlenachse dargestellten Daten überlappen sich nicht vollständig.
Der Float-Typ verwendet einen Teil seines Zustands, um größere Ganzzahlen und Dezimalzahlen darzustellen. Einige relativ große Ganzzahlen im Typ int können vom Typ float nicht genau dargestellt werden.
Die Mantisse einer Gleitkommazahl hat insgesamt 24 Bits, einschließlich versteckter Bits. Wenn die 24 bis 31 Bits der int-Daten nicht 0 sind, kann sie nicht genau in die Mantisse einer 24-Bit-Gleitkommazahl umgewandelt werden Mit der Zeit kommt es zu einem Präzisionsüberlauf und eine Rundungsverarbeitung ist erforderlich.
int→double
Das Mantissenfeld von Gleitkommazahlen ist 53 Bit groß und kann alle 32-Bit-Ganzzahlen genau darstellen.