WikiDer > Ganzzahl (Informatik)
EIN ganze Zahl (Englisch vor dem 'gerade Zahl') ist in der Informatik ein Datentyp die ganzzahlige Informationen enthält. Auf Englisch ganze Zahl ausgesprochen als [ˈɪn.tɪ.d͡ʒə(ɹ)]?, im niederländischen Sprachraum ist die Aussprache auch oft [ˈɪn.tə.ɣər]? gehört.
Ganzzahlen werden in der verwendet Hardware- dargestellt als durchgehende Reihe Bits einer vorgegebenen Länge. Der Wertebereich ist daher endlich. Berechnungen mit ganzen Zahlen sind in der Regel exakt, wobei der zulässige Wertebereich überschritten werden kann waarden Überlauf Performance. Obwohl sie manchmal anders genannt werden, steckt das Konzept in jedem Computer und in den meisten Programmiersprachen vorhanden. Oft stehen mehrere Arten von Integern zur Verfügung, die sich durch die Anzahl der verfügbaren Bits (und damit den Wertebereich) unterscheiden und ob sie die Möglichkeit bieten, negative Zahlen anzuzeigen. Die implementierte Integer-Arithmetik ist bisher nicht standardisiert und weist oft sprach- und sogar Compiler-abhängige Besonderheiten auf. Mit dem Sprachunabhängige Arithmetik Es wird versucht, zu einem Standard zu gelangen.
Ganzzahlen und Ganzzahlen
Ganzzahlen sind die Analogie oder Darstellung der ganzen Zahlen zur Verwendung auf einem Computer. Ganzzahlen unterscheiden sich jedoch von ganzen Zahlen dadurch, dass es im Prinzip nur endlich viele ganze Zahlen sind möglich, weil ganze Zahlen in einer endlichen Zahl gespeichert werden (höchstens persönliche Computer 32 oder 64) Bit. Als Ergebnis bilden die ganzen Zahlen in jeder Implementierung a endlichTeilmenge der ganzen Zahlen.
Da jedes Bit zwei mögliche Werte hat (0 und 1), Bits verschiedene Kombinationen werden hergestellt. Mit zwei Bits können also höchstens vier verschiedene Zahlen dargestellt werden. Bei 32 Bit sind es mehr als 4 Milliarden Ganzzahlen und bei 64 Bit etwa 18×1018.
Bei der binären Darstellung einer Zahl ist es üblich, wie bei Dezimalzahlen das höchstwertige Bit links und das niederwertige rechts zu schreiben.
0 00 1 01 2 10 3 11
Diese vier Binärzahlen können als zwei Bits verstanden werden vorzeichenlose ganze Zahlen, eine vorzeichenlose digitale Darstellung einer Zahl in zwei Bits, die alle mögliche Kombinationen. Analog lassen sich 256 ganze Zahlen mit beispielsweise 8 Bit darstellen. Grundsätzlich kann die Addition und Subtraktion solcher ganzen Zahlen (Binärzahlen) wie bei Dezimalzahlen erfolgen. Als Beispiel die Addition 19 7 und die Subtraktion 19 − 7 in einer 8-Bit-Darstellung.
111 merken (tragen) 0001 0011 = 19 0000 0111 = 7 —————————— —— 0001 1010 = 26
1 1 leihen (ausleihen) 0001 0011 = 19 0000 0111 = 7 —————————— − —— 0000 1100 = 12
Die letzte Rechnung kann auch als Addition 19 (−7) verstanden werden. Um die Addition auf normale Weise durchzuführen, sollte sie so aussehen (und auf 8 Bit beschränkt sein):
0001 0011 = 19 1111 1001 = −7 —————————— —— 0000 1100 = 12
Die negative Zahl −7 muss dann durch 1111 1001 (¬7 1). Diese Darstellung ist die sogenannte ZweierkomplementDarstellung. Mit dieser Darstellung für negative Zahlen kann jede Subtraktion in eine Addition umgewandelt werden.
Binärkodierte Dezimalzahl
In den fünfziger und sechziger Jahren des letzten Jahrhunderts war BCD eine häufig verwendete Zahlendarstellung. Dies hatte Vorteile bei der Darstellung von Daten auf einem Display, da eine binäre Version nicht mehr konvertiert werden musste, was viel Elektronik sparte. Auch heute noch wird BCD häufig für diese Zwecke in der Elektronik und in Mikrocontroller, speziell in Kombination mit elektronischen Anzeigen.
Bei BCD sind pro Dezimalstelle vier Bit reserviert, wobei die Wertbelegung gleich der binären Version ist. Dies bedeutet jedoch, dass die Reichweite eines BCDOktett[1] deutlich kleiner: 0 bis 99 statt 0 bis 255.
In modernen Computern wird BCD kaum noch verwendet, da die Berechnung recht umständlich und unnötig zeitaufwendig ist.
Das Vorzeichenbit (Zeichenbit)
Neben positiven Zahlen müssen auch negative Zahlen sein codiert d. h. in eine Bitfolge umgewandelt werden, die für die Zentralprozessor ist verständlich. Ein einfacher Weg ist ein bisschen mehr b3 als Vorzeichenbit (Zeichenbit) hinzufügen.
b3b2b1 0 0 0 = 0 0 0 1 = 1 0 1 0 = 2 0 1 1 = 3 1 0 0 = −0 1 0 1 = −1 1 1 0 = −2 1 1 1 = −3
Ein Nachteil ist, dass der Wert 0 zweimal vorkommt, als 0 und als −0. Außerdem erweist sich diese Darstellung als ziemlich schwierig zu implementieren, da Addition und Subtraktion unterschiedliche Schaltungen erfordern, während die Subtraktion eigentlich nichts anderes ist als das Addieren einer negativen Zahl.
Aber mit dem gewöhnlichen, naiven Zusatz geht einiges schief:
110 = −2 001 = 1 ———— —— 111 = −3 ?Komplement
Eine Darstellung, mit der die Rechenoperationen, wenn auch mit einer kleinen Modifikation, durchgeführt werden können, ist seine Ergänzung oder 1er Komplement. In dieser Darstellung werden positive ganze Zahlen in üblicher Weise durch die Bitzeile dargestellt, die ihrer binären Darstellung mit einer 0 vorangestellt ist. Negative ganze Zahlen bestehen aus der Bitzeile der komplementären Bits ihrer positiven Gegenteil, also mit allen Bits invertiert. Die Bitzeile einer negativen Zahl beginnt also mit einer 1. Das höchstwertige Bit fungiert weiterhin als Vorzeichenbit. Diese umkehren (ebenfalls bitweise NICHT) ist eine sehr einfache elektronische Operation, die kaum Zeit, Transistoren und damit Strom und wertvollen Platz auf dem Chip benötigt.
Mit Bits und die Bitzeile die binäre Darstellung der Zahl gilt für ganze Zahlen :
Die 1-Komplement-Darstellung einer positiven ganzen Zahl ist die Bitreihe mit , und damit das höchstwertige Bit . Eine negative ganze Zahl hat als 1er-Komplement-Darstellung die Bitzeile mit , und damit das höchstwertige Bit . Gilt auch: wenn die 1-Komplement-Darstellung ist von , dann ist die 1-komplementäre Darstellung von .
Mit 3 Bits:
b3b2b1 0 0 0 = 0 0 0 1 = 1 0 1 0 = 2 0 1 1 = 3 1 0 0 = −3 1 0 1 = −2 1 1 0 = −1 1 1 1 = −0
Zweierkomplement
Zweierkomplement oder Zweierkomplement ist die Zahlendarstellung, die üblicherweise in Computern verwendet wird. Es gibt nur eine Darstellung für '0', die offensichtliche. Das Zweierkomplement hat alle Vorteile des Einerkomplements, aber keinen der Nachteile, daher ist es am einfachsten in zu implementieren Hardware-. Im Zweierkomplement werden positive ganze Zahlen wie im Einerkomplement durch ihre binäre Darstellung dargestellt, der eine 0 vorangestellt ist. Negative ganze Zahlen werden durch Addieren von 1 zur Darstellung im Einerkomplement dargestellt.
Mit Bits und die Bitzeile die binäre Darstellung der Zahl gilt für ganze Zahlen :
Die 2-komplementäre Darstellung einer positiven ganzen Zahl positive ist die Bitreihe mit , und damit das höchstwertige Bit . Eine negative ganze Zahl hat als 2-komplementäre Darstellung die Bitzeile mit row , und damit das höchstwertige Bit .
Mit 3 Bits:
b3b2b1 0 0 0 = 0 0 0 1 = 1 0 1 0 = 2 0 1 1 = 3 1 0 0 = −4 1 0 1 = −3 1 1 0 = −2 1 1 1 = −1
Überlauf, Unterlauf und Überlauf
In der Informatik ist das Phänomen Überlauf bekannt. Dies bedeutet, dass eine Zahl zu groß oder zu klein ist, um durch die verfügbare Anzahl von Bits dargestellt zu werden. Zum Beispiel kann eine ganze Zahl mit Vorzeichen von -128 bis 127 mit 8 Bits in einer 2-Komplement-Zahlendarstellung codiert werden. Liegt die Antwort einer Rechnung, zB Addition zweier positiver Zahlen, außerhalb dieses Intervalls, kommt es zu einem Überlauf. Zu niedrige Werte, zum Beispiel wenn das Ergebnis unter -128 liegt, werden auch als bezeichnet Unterlauf. Die meisten Mikroprozessoren zeigen diesen Über- und/oder Unterlauf in einem separaten Bit im Statusregister an. Bei Bedarf können Computerprogramme darauf reagieren. Wenn ein Programm auf einen Überlauf nicht oder nicht richtig reagiert, kann das Programm falsche und (oft) unerwünschte Ergebnisse liefern.
Bei Zählern (wie sie beispielsweise in Computeruhren und Timern verwendet werden) kann es sein, dass bewusst keine besondere Reaktion auf den Überlauf erfolgt, Berechnungen angestellt werden modular die Zahl der darstellbaren Zahlen. In diesem Fall heißt es auch sich umdrehen. Denken Sie an die Seriennummern, die beispielsweise in Postämtern verwendet werden: Nach der Nummer 99 kommt die Nummer 00.
Endianität
Da die Wortbreite des Speichers stark von der des Prozessors abweichen kann, muss eine Möglichkeit gefunden werden, Nein-Bit-Ganzzahl, auf die verteilt werden soll ich Speicheradressen. In einem Haus-Garten-und-Küche-pc, zum Beispiel soll der Inhalt eines 64-Bit-Registers auf 8 . verteilt werden Bytes (genau genommen Oktette). Es gibt zwei gemeinsame (Big-Endian und kleiner endian) und eine Reihe nicht so verbreiteter Systeme im Umlauf.
Ganzzahlen in C
Die Programmiersprache C hat eine Reihe von Integer-Typen, über die es vor allem bei Hobbyprogrammierern und Anfängern oft Missverständnisse gibt. Manche sagen zum Beispiel einfach "a Lunge ist 32 Bit", was ein gefährlicher Irrtum ist. Ein weiterer Irrtum ist, dass "Vorzeichen"-Integer immer in 2-Komplement-Form vorliegen. Dies ist zwar im Allgemeinen der Fall, wird jedoch vom Standard keineswegs gefordert.
Offizieller Name Kurzbezeichnung Nummer Bits typische Implementierungen[2] 8/16-Bit 32-Bit 64-Bit kurz int kurz 16 16 16 16 int minimal 16 16 32 32 lange int Lunge minimal 32 32 32 64 lange lange int[3] Lunge Lunge minimal 64 normalerweise abwesend 64 128
Eine "normale" Ganzzahl in dieser Sprache hat eine Mindestbreite von 16 Bit, obwohl die meisten Programmierumgebungen für Heim-, Garten- und Küchen-PCs 32 Bit für beide Typen verwenden. Dies hat bei Hobbyprogrammierern zu vielen Missverständnissen und der sarkastischen Parole geführt "Die ganze Welt ist 32-Bit". Die dabei gemachten Fehler, wenn man diesen Typ annimmt X immer Nein Bit zählt oder dieser Typ X und Typ Ja gleiche Breite ergeben sich, sobald einer der beiden Typen abweicht, zum Beispiel weil man auf eine 64-Bit-Implementierung umgestiegen ist, wobei a lange ganze Zahl enthält 64 Bit. Dieses Phänomen ist eine ziemlich häufige Quelle von Fehler. Mit dem Größe von Operator ist es jedoch leicht herauszufinden, welche Definitionen ein bestimmter Compiler verwendet und die Software kann ohne diese Annahmen geschrieben werden.
| Quellen, Anmerkungen und/oder Verweise Nüsse Quellen |