Ganze Zahl (Informatik)

In der Informatik ist eine ganze Zahl eine Gegebenheit des integrierten Datentyps, ein Datentyp, der eine begrenzte Teilmenge der mathematischen ganzen Zahlen vertritt. Integrierte Datentypen können verschiedener Größen sein, und können, oder kann nicht erlaubt werden, negative Werte zu enthalten. Ganze Zahlen werden in einem Computer als eine Gruppe von binären Ziffern vertreten. Die Größe der Gruppierung ändert sich, aber Computerhardware stellt fast immer eine Weise zur Verfügung, ein Verarbeiter-Register oder Speicheradresse als eine ganze Zahl zu vertreten; der Satz von verfügbaren Größen der ganzen Zahl ändert sich zwischen verschiedenen Typen des Computers.

Wert und Darstellung

Der Wert eines Artikels mit einem integrierten Typ ist die mathematische ganze Zahl, der er entspricht. Integrierte Typen können (fähig dazu nicht unterzeichnet sein, nur natürliche Zahlen zu vertreten), oder unterzeichnet (fähig dazu, negative ganze Zahlen ebenso zu vertreten).

Ein Wert der ganzen Zahl wird normalerweise in (Quellcode) Programm angegeben, weil eine Folge von Ziffern, ohne Räume oder Tausende Separatoren, fakultativ mit + oder  vorbefestigt hat. Einige Programmiersprachen erlauben andere Notationen, wie hexadecimal (stützen Sie 16) oder Oktal-(Basis 8).

Die innere Darstellung dieser Gegebenheit ist die Weise, wie der Wert im Gedächtnis des Computers versorgt wird.

Verschieden von mathematischen ganzen Zahlen hat eine typische Gegebenheit in einem Computer einen minimalen und maximalen möglichen Wert. Normalerweise können alle ganzen Zahlen vom Minimum bis das Maximum vertreten werden.

Das Maximum wird manchmal genannt oder — als in der C Standardbibliothek limits.h Kopfball —.

Die allgemeinste Darstellung einer positiven ganzen Zahl ist eine Schnur von Bit mit dem binären Ziffer-System. Die Ordnung der Speicherbytes, die die Bit versorgen, ändert sich; sieh endianness. Die Breite oder Präzision eines integrierten Typs sind die Zahl von Bit in seiner Darstellung. Ein integrierter Typ mit n Bit kann 2 Zahlen verschlüsseln; zum Beispiel vertritt ein nicht unterzeichneter Typ normalerweise die nichtnegativen Werte 0 bis 21.

Es gibt vier verschiedene Weisen, negative Zahlen in einem binären Ziffer-System zu vertreten. Das allgemeinste ist die Ergänzung von two, die einem unterzeichneten integrierten Typ mit n Bit erlaubt, Zahlen von 2 bis 21 zu vertreten. Die Ergänzungsarithmetik von Two ist günstig, weil es eine vollkommene isomorphe Ähnlichkeit zwischen Darstellungen und Werten (insbesondere keine getrennten +0 und 0) gibt, und weil Hinzufügung, Subtraktion und Multiplikation zwischen unterzeichneten und nicht unterzeichneten Typen nicht zu unterscheiden brauchen. Die anderen Möglichkeiten werden binär, Zeichen-Umfang und die Ergänzung von ausgeglichen. Sieh Unterzeichnete Zahl-Darstellungen für Details.

Allgemeine integrierte Datentypen

Verschiedene Zentraleinheiten unterstützen verschiedene integrierte Datentypen. Gewöhnlich wird Hardware sowohl unterzeichnete als auch nicht unterzeichnete Typen, aber nur einen kleinen, befestigten Satz von Breiten unterstützen.

Der Tisch verzeichnet oben integrierte Typ-Breiten, die in der Hardware durch allgemeine Verarbeiter unterstützt werden. Hohe Programmiersprachen stellen mehr Möglichkeiten zur Verfügung. Es ist üblich, eine 'doppelte Breite' integrierter Typ zu haben, der doppelt so viele Bit als der größte Hardware-unterstützte Typ hat. Viele Sprachen haben auch mit dem Bitfeldtypen (eine bestimmte Anzahl von Bit, gewöhnlich beschränkt, weniger zu sein, als das Maximum Hardware-unterstützte Breite) und Reihe-Typen (der nur die ganzen Zahlen in einer angegebenen Reihe vertreten kann).

Einige Sprachen, wie Lispeln, Plausch, REXX und Haskell, unterstützen willkürliche ganze Präzisionszahlen (auch bekannt als unendliche ganze Präzisionszahlen oder bignums). Andere Sprachen, die dieses Konzept als eine Konstruktion auf höchster Ebene nicht unterstützen, können Bibliotheken haben, die verfügbar sind, um sehr große Anzahl mit der Reihe von kleineren Variablen, wie Javas Klasse oder das "" Paket von Perl zu vertreten. Diese verwenden so ein großes des Gedächtnisses des Computers, wie notwendig ist, um die Zahlen zu versorgen; jedoch hat ein Computer nur einen begrenzten Betrag der Lagerung, so können sie nur auch eine begrenzte Teilmenge der mathematischen ganzen Zahlen vertreten. Diese Schemas unterstützen sehr große Anzahl, zum Beispiel konnte das ein Kilobyte des Gedächtnisses verwendet werden, um Zahlen bis zu 2466 dezimale Ziffern lange zu versorgen.

Ein Typ Boolean oder Flag ist ein Typ, der nur zwei Werte vertreten kann: 0 und 1, gewöhnlich identifiziert mit dem falschen und wahren beziehungsweise. Dieser Typ kann im Gedächtnis mit einem einzelnen Bit versorgt werden, aber wird häufig ein volles Byte für die Bequemlichkeit gegeben zu richten und Geschwindigkeit des Zugangs.

Eine Vier-Bit-Menge ist als ein Nagen bekannt (wenn man isst, kleiner seiend als ein Bissen) oder nybble (ein Wortspiel über die Form des Wortbytes seiend). Ein Nagen entspricht einer Ziffer in hexadecimal und hält eine Ziffer oder einen Zeichen-Code in der binär codierten Dezimalzahl.

Bytes und Oktette

Der Begriff Byte hat am Anfang 'die kleinste addressable Einheit des Gedächtnisses' bedeutet. In der Vergangenheit, 5-, 6-, 7-, 8-, und den 9-Bit-Bytes sind alle verwendet worden. Es hat auch Computer gegeben, die individuelle Bit ('Bit-gerichtete Maschine') richten konnten, oder das nur 16- oder 32-Bit-Mengen ('wortgerichtete Maschine') richten konnte. Der Begriff Byte wurde gewöhnlich überhaupt im Zusammenhang mit dem Bit - und wortgerichtete Maschinen nicht gebraucht.

Der Begriff Oktett bezieht sich immer auf eine 8-Bit-Menge. Es wird größtenteils im Feld des Computernetzwerkanschlusses verwendet, wo Computer mit verschiedenen Byte-Breiten könnten kommunizieren müssen.

Im modernen Gebrauch-Byte bedeutet fast unveränderlich acht Bit, seitdem alle anderen Größen in den Nichtgebrauch gefallen sind; so ist Byte gekommen, um mit dem Oktett synonymisch zu sein.

Wörter

Der Begriff 'Wort' wird für eine kleine Gruppe von Bit gebraucht, die gleichzeitig durch Verarbeiter einer besonderen Architektur behandelt werden. Die Größe eines Wortes ist so mit der Zentraleinheit spezifisch. Viele verschiedene Wortgrößen, sind einschließlich 6-, 8-, 12-, 16-, 18-, 24-, 32-, 36-, 39-, 48-, 60-, und 64 Bit verwendet worden. Da es architektonisch ist, wird die Größe eines Wortes gewöhnlich durch die erste Zentraleinheit in einer Familie, aber nicht die Eigenschaften einer späteren vereinbaren Zentraleinheit gesetzt. Die Bedeutungen von Begriffen sind auf Wort, wie longword, doubleword, quadword, und Halbwort zurückzuführen gewesen, ändern Sie sich auch mit der Zentraleinheit und OS.

Praktisch sind alle neuen Tischverarbeiter dazu fähig, 64-Bit-Wörter zu verwenden, obwohl eingebettete Verarbeiter mit 8- und 16-Bit-Wortgröße noch üblich sind. Die 36-Bit-Wortlänge war in den frühen Tagen von Computern üblich.

Eine wichtige Ursache der Nichtbeweglichkeit der Software ist die falsche Annahme, dass alle Computer dieselbe Wortgröße wie der vom Programmierer verwendete Computer haben. Zum Beispiel, wenn ein Programmierer, der die c Sprache falsch verwendet, als eine Variable erklärt, die verwendet wird, um Werte zu versorgen, die größer sind als 21, wird das Programm auf Computern mit ganzen 16-Bit-Zahlen scheitern. Diese Variable sollte als erklärt worden sein, der mindestens 32 Bit auf jedem Computer hat. Programmierer können auch falsch annehmen, dass ein Zeigestock zu einer ganzen Zahl ohne Verlust der Information umgewandelt werden kann, die an (ungefähr) 32 Bit Computern arbeiten, aber auf 64-Bit-Computern mit 64-Bit-Zeigestöcken und ganzen 32-Bit-Zahlen scheitern kann.

Kurze ganze Zahl

Eine kurze ganze Zahl kann eine ganze Zahl vertreten, die weniger Lagerung nehmen kann, während sie eine kleinere Reihe im Vergleich zu einer normalen ganzen Zahl auf derselben Maschine hat.

Eine kurze ganze Zahl auf einer Programmiersprache kann eine verschiedene Größe auf einer verschiedenen Sprache oder auf einem verschiedenen Verarbeiter sein. Auf einigen Sprachen wird diese Größe über Plattformen befestigt, während in anderen es maschinenabhängig ist. Auf einigen Sprachen besteht dieser datatype überhaupt nicht.

In C wird es dadurch angezeigt. Es ist erforderlich, mindestens 16 Bit zu sein, und ist häufig kleiner als eine normale ganze Zahl, aber das ist nicht erforderlich. Ein sich anpassendes Programm kann annehmen, dass es Werte zwischen  (21) und 21 sicher versorgen kann, aber es kann nicht annehmen, dass die Reihe nicht größer ist. In Java, immer einer ganzen 16-Bit-Zahl zu sein. In der Windows-API wird der datatype als unterzeichnete ganze Zahl von 16 Bit auf allen Maschinen definiert.

Allgemeine kurze Größen der ganzen Zahl

Lange ganze Zahl

Eine lange ganze Zahl kann eine ganze Zahl der ganzen Zahl vertreten, deren Reihe größer oder gleich dieser einer normalen ganzen Zahl auf derselben Maschine ist.

Eine lange ganze Zahl auf einer Programmiersprache kann in der Größe von einer langen ganzen Zahl auf einer verschiedenen Sprache oder Verarbeiter verschieden sein. Auf einigen Sprachen wird diese Größe über Plattformen befestigt, während in anderen es Maschinenabhängiger ist. Auf einigen Sprachen besteht dieser Datentyp überhaupt nicht.

Eine lange ganze Zahl verlangt allgemein doppelt die Lagerungskapazität einer normalen ganzen Zahl, obwohl das nicht immer der Fall ist.

C und C ++

In der C99 Version der C Programmiersprache und des C ++ 11 Version von C ++ wird ein Typ unterstützt, der die minimale Kapazität des Standards zu 64 Bit verdoppelt. Dieser Typ wird durch Bearbeiter nicht unterstützt, die verlangen, dass C-Code mit dem vorherigen C ++ Standard, C ++ 03 entgegenkommend ist, weil der Typ in C ++ 03 nicht bestanden hat. Für einen ANSI/ISO entgegenkommenden Bearbeiter müssen die minimalen Forderungen für die angegebenen Reihen, der  (2) zu 21 für den unterzeichneten und 0 zu 21 für den nicht unterzeichneten ist, erfüllt werden; jedoch wird das Verlängern dieser Reihe erlaubt. Das kann ein Problem sein, wenn es Code und Daten zwischen Plattformen austauscht, oder direkten Hardware-Zugang tut. So gibt es mehrere Sätze von Kopfbällen, die Plattform unabhängige genaue Breite-Typen zur Verfügung stellen. Die C Standardbibliothek stellt stdint.h zur Verfügung; das wurde in C99 und C ++ 11 eingeführt.

Allgemeine lange Größen der ganzen Zahl

der Begriff ist gleichwertig, aber er wird selten verwendet

Siehe auch

  • Unterzeichnete Zahl-Darstellungen
  • Binär codierte Dezimalzahl, ein anderer, ziemlich verschieden, Darstellung für ganze Zahlen, die noch im Großrechner Finanzanwendungen und in Datenbanken allgemein verwendet wird.

Referenzen


IEEE 802.3 / Ansteckende Krankheit
Impressum & Datenschutz