Übertragsbit

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Carry Bit)
Zur Navigation springen Zur Suche springen

Das Übertragsbit (engl. carry bit) ist ein Begriff aus der Informatik. Er bezeichnet ein Bit, welches den Übertrag einer Addition oder Subtraktion von Bits auf das nächst höherwertige Bit enthält. Beim Schieben oder Rotieren von Registern wird das Übertragsbit ebenfalls verwendet. Ein herausgeschobenes Bit wird hier gespeichert um es beim nächsten Register wieder hinein zu schieben. Das Übertragsbit gibt es in Computern aber auch in diskreten elektronischen Logikbauteilen.

Addition und Subtraktion

[Bearbeiten | Quelltext bearbeiten]

Die für eine elementare Berechnung in einem Prozessor vorgesehenen Werte besitzen zumeist eine feste Speichergröße, zum Beispiel n Bit mit den Stellen a0 bis an-1. Diese Werte werden meist bitweise bearbeitet (durch 1-Bit ALUs). Entsteht bei der Bearbeitung einer Stelle ai ein Ergebnis mit zwei Stellen, so wird die im Stellenwertsystem höherwertige Stelle des Ergebnisses als Übertragsbit an die nächste (auch die höherwertige) Stelle ai+1 der zu berechnenden Werte weitergegeben, damit diese Stelle korrekt berechnet werden kann.

Das letzte Übertragsbit der Berechnung an der höchstwertigsten Stelle an-1 wird von Prozessoren oft in einem Statusregister als Übertragsmerker (engl. Carry-Flag) gespeichert, um zum Beispiel in mehreren Rechenschritten Zahlen zu bearbeiten, die größer sind als die Bit-Breite der ALU. Nach dem gleichen rekursiven Prinzip, nach dem man n-bit breite Zahlen aus verketteten 1-Bit-Additionen errechnet, kann man also auch m-bit breite Zahlen berechnen, wobei m ein Vielfaches von n ist.

Der Übertragsmerker stellt prinzipiell den Übertrag der Stelle an-1 dar, während das Überlaufbit von der Zahleninterpretation abhängt und die Überschreitung des jeweils gültigen Zahlenbereiches signalisiert.

Ein Beispiel ist die Binärzahlen-Addition 1111 + 1111 mit 4-Bit Registern. Das ausgegebene Ergebnis ist 1110, da das höchstwertige Bit abgeschnitten wurde (das vollständige Ergebnis benötigt 5 Bits). Bei dieser Berechnung wird daher das Übertragsbit im Statusregister der ALU gesetzt, jedoch nicht das Überlaufbit.

Diese beispielhafte Berechnung kann auf zwei Arten interpretiert werden: zum einen als vorzeichenlose Berechnung 15 + 15, zum anderen als vorzeichenbehaftete Berechnung (Zweierkomplement) -1 + (-1).

Bei der vorzeichenlosen Berechnung wäre das korrekte Ergebnis 11110; das gesetzte Übertragsbit zeigt hier, dass das fünfte Bit des Ergebnisses abgeschnitten wurde. Das Überlaufbit dagegen kann vernachlässigt werden.

Bei der vorzeichenbehafteten Berechnung ist das Übertragsbit dagegen irrelevant. Das nicht gesetzte Überlaufbit zeigt an, dass die Berechnung keinen Überlauf verursacht hat und das Ergebnis 1110 (interpretiert als -2 nach Zweierkomplement) daher korrekt ist.

Rotieren und Schieben

[Bearbeiten | Quelltext bearbeiten]

In diesen Funktionen werden alle Bits nach links oder rechts verschoben. Dasjenige Bit, das herausfällt wird in jedem Fall im Übertragsbit gespeichert. Da nun am anderen Ende des Registers ein Bit frei wird, gibt es mehrere Möglichkeiten es zu füllen (siehe technische Beschreibung Schieberegister).

  • Mit einem konstanten Bit 0 oder 1.
  • Das Bit behält seinen vorherigen Wert.
  • Mit dem Bit, das herausgeschoben wurde.
  • Mit dem vorherigen Inhalt des Übertragsbites.

Status des Übertragsbits

[Bearbeiten | Quelltext bearbeiten]

Meist nur in Assembler­programmen, kann das Übertragsbit abgefragt werden, ob ein bestimmter Programmabschnitt ausgeführt werden soll.
Als Hardware-Signal kann es andere Logikbauteile steuern.