www.wikidata.de-de.nina.az
Mit Integer ˈɪnteɡɐ englisch ˈɪntɪdʒe fur ganze Zahl von lateinisch numerus integer wird in der Informatik ein Datentyp bezeichnet der ganzzahlige Werte speichert Als grundlegender arithmetischer Datentyp sind Integer in der Hardware fast aller Rechenanlagen vorhanden und in nahezu jeder Programmiersprache verfugbar Meist werden mehrere Integerarten bereitgestellt die sich in der Darstellung der Lange oder dem Vorhandensein eines Vorzeichens unterscheiden Der 2001 veroffentlichte Internationale Standard ISO IEC 10967 Language Independent Arithmetic 1 beschreibt die grundlegenden Eigenschaften und Rechenoperationen fur ganze Zahlen und Gleitkommazahlen unabhangig von der eingesetzten Programmiersprache oder dem eingesetzten Computer Inhaltsverzeichnis 1 Darstellungen 1 1 Vorzeichenlose Zahlen 1 2 Zweierkomplement 1 3 Einerkomplement 1 4 Vorzeichen und Betrag 1 5 Exotische Darstellungen 2 Haufige Speicherformen 3 Rechenoperationen 3 1 Vergleich 3 2 Addition 3 3 Subtraktion 3 4 Multiplikation 3 5 Division 3 6 Arithmetischer Uberlauf 4 Verwendung 5 Verwandte Datentypen 6 EinzelnachweiseDarstellungen BearbeitenDie in Prozessoren direkt unterstutzten Ganzzahl Datentypen haben eine feste Stellenanzahl zum Beispiel 8 Bit 32 Bit 128 Bit da hierdurch die elektronischen Schaltungen in den Prozessoren fest verdrahtet werden konnen Vorzeichenlose Zahlen Bearbeiten Ganzzahlen werden in einem binaren Stellenwertsystem gespeichert und verarbeitet das bedeutet dass jede Zahl aus einer festen Anzahl Stellen besteht und jede dieser Stellen entspricht einem bestimmten Wert Der Wert einer Zahl ergibt sich in einem Stellensystem dadurch dass man jede Ziffer der Zahl mit dem jeweiligen Stellenwert multipliziert und diese Teilergebnisse aufsummiert Im Binarsystem gibt es nur die Ziffern 0 und 1 daher reicht es die Stellenwerte der Stellen zu addieren an denen die Ziffer 1 ist Darstellung von vorzeichenlosen Binarzahlen mit Bits Bit 7 6 5 4 3 2 1 0Stellenwert 128 64 32 16 8 4 2 1Zahl 0 0 0 0 0 0 0 0 0Zahl 7 0 0 0 0 0 1 1 1Zahl 100 0 1 1 0 0 1 0 0Zahl 255 1 1 1 1 1 1 1 1Zum Beispiel sind bei der Zahl 100 die Bits 6 5 und 2 gesetzt Die dazugehorigen Stellenwerte sind 64 32 und 4 und deren Summe ist 100 Die Stellenwerte der einzelnen Bits entsprechen genau den Zweierpotenzen Durch diese Wahl gibt es zu jeder Zahl genau eine Darstellungsmoglichkeit und dadurch wiederum wird der Speicherplatz optimal genutzt Zweierkomplement Bearbeiten Um auch negative ganze Zahlen darzustellen wird das Zweierkomplement verwendet Dabei wird das Vorzeichen der hochstwertigen Stelle umgekehrt Zum Beispiel hat bei einer 8 Bit Zahl die hochstwertige Stelle nicht mehr den Stellenwert 128 sondern 128 Dadurch geht der Zahlenbereich nicht mehr von 0 bis 255 sondern von 128 bis 127 Beim Rechnen im Zweierkomplement funktionieren Addition und Subtraktion genauso wie bei vorzeichenlosen Zahlen Das Vergleichen von Zahlen sowie die Multiplikation und Division mussen jedoch angepasst werden Die kleinste negative Zahl hat kein entsprechendes Gegenstuck bei den positiven Zahlen daher kann eine Multiplikation mit 1 dazu fuhren dass sich das Vorzeichen nicht andert Einerkomplement Bearbeiten Beim Einerkomplement wird das Vorzeichen der hochstwertigen Stelle umgekehrt und 1 abgezogen Dadurch gibt es 2 unterschiedliche Darstellungen fur die Zahl 0 die 0 und 0 genannt werden Zum Beispiel hat bei einer 8 Bit Zahl die hochstwertige Stelle nicht mehr den Stellenwert 128 sondern 127 Dadurch geht der Zahlenbereich nicht mehr von 0 bis 255 sondern von 127 bis 127 Elektronische Schaltungen zum Rechnen im Einerkomplement sind aufwendiger daher ist diese Darstellung nicht weit verbreitet Vorzeichen und Betrag Bearbeiten In der Betrags Vorzeichendarstellung werden das Vorzeichen und der Betrag getrennt gespeichert und verarbeitet Die Betrags Vorzeichendarstellung ist zum Multiplizieren und Dividieren praktisch da das Vorzeichen separat behandelt werden kann Vergleiche Additionen und Subtraktionen sind jedoch im Zweierkomplement einfacher umzusetzen Exotische Darstellungen Bearbeiten In Bereichen in denen Dezimalzahlen ziffernweise verarbeitet werden konnen Zahlen ziffernweise im BCD Format gespeichert werden Fur Rechnungen mit mehreren Ziffern ist dieses Format unpraktisch da die elektronischen Schaltungen entweder zu kompliziert werden oder vor jeder Rechenoperation die Zahlen zwischen dem BCD Format und dem Binarformat umgewandelt werden mussen Weitere exotische Darstellungen sind in 2 beschrieben Haufige Speicherformen BearbeitenEin Integer besteht in der Regel aus 8 16 32 64 oder 128 Bits also 1 2 4 8 oder 16 Bytes entsprechend der Wortbreite der jeweiligen CPU Historisch wurden auch andere Werte 12 48 Bit verwendet Namen von Integer Datentypen mit festgelegter Breite setzen sich zusammen aus einem Vorzeichenindikator und der Breite in Bits So bezeichnet zum Beispiel Int32 einen vorzeichenbehafteten 32 Bit breiten Datentyp wahrend UInt128 einen vorzeichenlosen unsigned 128 Bit breiten Datentyp bezeichnet Je nach Programmiersprache variieren die tatsachlichen Namen Zusatzlich gibt es historisch gewachsene Namen fur die Datentypen die keinem festen Schema folgen und je nach Programmiersprache und Prozessor variieren zum Beispiel Byte oder char fur 8 Bit je nach Programmiersprache mit oder ohne Vorzeichen Word fur 16 18 32 36 Bit je nach Rechnerarchitektur davon abgeleitet DWord fur double word und QWord fur quad word Int Integer SmallInt short int LongInt long long int je nach Rechnerarchitektur Rune fur die Darstellung von Zeichen siehe UnicodeBei der Ablage im Speicher muss festgelegt sein in welcher Reihenfolge die Bits der Zahlendarstellung auf die einzelnen Bytes verteilt werden siehe Bytereihenfolge Grosse Bit Vorzeichen Grenzen des Wertebereichs Zweierkomplement Dezimalstellen ohne Vorzeichen min max8 signed 128 127 3unsigned 0 255 316 signed 32 768 32 767 5unsigned 0 65 535 532 signed 2 147 483 648 2 147 483 647 10unsigned 0 4 294 967 295 1064 signed 9 223 372 036 854 775 808 9 223 372 036 854 775 807 19unsigned 0 18 446 744 073 709 551 615 20128 signed 1 70141 1038 1 70141 1038 39unsigned 0 3 40282 1038 39n signed 2n 1 2n 1 1 log10 2n 1 unsigned 0 2n 1 log10 2n Rechenoperationen BearbeitenDie folgenden Rechenoperationen gelten im Zweierkomplement In den anderen Darstellungen ist die Umsetzung aufwendiger das heisst mit mehr elektronischen Gattern verbunden da die 0 zwei unterschiedliche Darstellungen hat Vergleich Bearbeiten Um zwei vorzeichenlose Ganzzahlen A und B zu vergleichen wird von der Zahl A die Zahl B subtrahiert Zusatzlich wird der Ubertrag der bei der hochstwertigen Stelle entsteht untersucht Ist der Ubertrag 1 ist B grosser als A Ist der Ubertrag 0 ist B kleiner oder gleich A Ist das Ergebnis der Subtraktion 0 sind die Zahlen gleich Um zwei vorzeichenbehaftete Ganzzahlen A und B zu vergleichen wird deren hochstwertiges Bit gekippt 0 wird zu 1 1 wird zu 0 die so entstandenen Zahlen werden wie vorzeichenlose Zahlen verglichen Addition Bearbeiten Um zwei Ganzzahlen A und B zu addieren werden ihre Bits paarweise addiert wie bei der schriftlichen Addition Der elektronische Baustein um ein Bit zweier Zahlen und den Ubertrag der vorherigen Stelle zu addieren heisst Volladdierer Wenn beim Addieren der hochstwertigen Stelle ein Ubertrag entsteht ist das Ergebnis zu gross fur den Datentyp Bei vorzeichenlosen Zahlen wird ein solcher Uberlauf ublicherweise ignoriert Bei vorzeichenbehafteten Zahlen hangt das Verhalten von der Programmiersprache ab In C ist das Verhalten undefiniert in Java wird der Ubertrag verworfen Subtraktion Bearbeiten Um zwei Ganzzahlen A und B zu subtrahieren werden alle Bits von B gekippt aus 0 wird 1 aus 1 wird 0 anschliessend wird die Summe aus A dem gekippten B und 1 berechnet Statt B zu subtrahieren wird also die Gegenzahl von B addiert Wenn bei dieser Addition ein Ubertrag entsteht war die Subtraktion erfolgreich Wenn jedoch kein Ubertrag entsteht liegt das mathematische Ergebnis ausserhalb des darstellbaren Bereichs mit den gleichen Folgen wie bei der Addition Multiplikation Bearbeiten Um zwei Ganzzahlen A und B zu multiplizieren werden A und B in die einzelnen Bits zerlegt und wie bei der schriftlichen Multiplikation multipliziert Das Ergebnis ist eine Ganzzahl die so viele Stellen hat wie A und B zusammen Division Bearbeiten Um zwei Ganzzahlen A und B zu dividieren werden sie wie bei der schriftlichen Division verarbeitet Arithmetischer Uberlauf Bearbeiten Uberlauf bei Integerzahlen Bitlange 3 1 Entsteht beim Rechnen mit Ganzzahlen ein Wert ausserhalb ihres Wertebereiches fuhrt dies zu einem arithmetischen Uberlauf So wird z B bei einer vorzeichenlosen 8 Bit Integer Variablen aus 255 1 der Wert 0 bei einer vorzeichenbehafteten im Zweierkomplement hingegen aus 127 1 entweder der Wert 128 oder undefiniertes Verhalten je nach Programmiersprache Verwendung BearbeitenGanzzahlen lassen sich in Computern vielseitig einsetzen Als Zahlen mit denen gerechnet wird Als Nummern bzw Kennungen um Objekte zu unterscheiden Fehlernummern Fehlercodes IDs in Datenbanken Als Bitmenge fur eine Teilmenge einer kleinen Anzahl von Objekten mogliche Zustande in nichtdeterministischen Automaten Verwandte Datentypen BearbeitenAufzahlungstypen definieren eine Menge von unterscheidbaren Objekten sie werden ublicherweise als Ganzzahl gespeichert Festkommazahlen funktionieren analog zu den Ganzzahlen da das Komma keine Auswirkungen auf Vergleich Addition und Subtraktion hat lediglich bei Multiplikation und Division muss das Komma verschoben und das Ergebnis gerundet werden Gleitkommazahlen decken bei gleichem Speicherbedarf einen grosseren Zahlenbereich ab konnen dafur aber nicht alle ganzen Zahlen in diesem Bereich darstellen Durch die erforderlichen Rundungen innerhalb der Rechnungen gelten viele der Rechenregeln Assoziativgesetz Distributivgesetz dort nicht Einzelnachweise Bearbeiten ISO IEC 10967 in der englischsprachigen Wikipedia Donald E Knuth The Art of Computer Programming 2 Seminumerical Algorithms 3 Auflage Addison Wesley 1997 ISBN 0 201 89684 2 S 195 4 1 Positional number systems S 284 4 3 2 Modular arithmetic Abgerufen von https de wikipedia org w index php title Integer Datentyp amp oldid 232563151