Integer

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Grundsätzlich wird mit Integer eine ganze Zahl (keine Nachkommastellen) bzw. die Klasse der ganzen Zahlen bezeichnet. In der Informationsverarbeitung stehen dazu die Fließkomma- und Fixkommazahlen im Gegensatz.

Der Wertebereich von Integer-Zahlen hängt davon ab, ob Vorzeichen verwendet werden. Auf dem C64 sind folgende Integer-Typen gängig:

  • Byte ohne Vorzeichen (0 .. 255, 8 Bit)
  • Byte mit Vorzeichen (-128 .. 127, 8 Bit: 7 Bit plus ein Vorzeichen-Bit)
  • Word ohne Vorzeichen (0 .. 65535, 16 Bit)
  • Word mit Vorzeichen (-32768 .. 32767, 16 Bit: 15 Bit plus ein Vorzeichen-Bit)

[Bearbeiten] Integer-Zahlen beim C64

[Bearbeiten] CPU-Ebene

Die ALU (arithmetisch-logische Einheit oder Rechenwerk) der CPU MOS 6510 des C64 arbeitet fast ausschließlich mit 8-Bit-Ganzzahlen (Byte) entsprechend ihrer Register- bzw. Datenbusbreite. Vorzeichenbehaftete Integer-Zahlen benutzt der Rechner z.B. bei relativen bedingten Sprüngen (BNE, BEQ usw.). Integer in Word-Breite werden zur Darstellung von absoluten Adressen und innerhalb (weniger) Register wie dem Programmzähler verwendet. Rechenoperationen auf 16 Bit-Zahlen müssen aus einzelnen 8-Bit-Operationen zusammengesetzt werden. Fließkommazahlen sind der CPU unbekannt.

[Bearbeiten] BASIC-Interpreter-Ebene

Auf der Ebene des BASIC-Interpreters wird für alle Integer-Zahlen die Word-Breite (16 Bit) genutzt. BASIC-Variablen vom Typ Integer müssen als Typkennung das Prozentzeichen (%) im Namen führen. Für den Umgang mit Integer-Zahlen stellt der Interpreter verschiedene Funktionen und Befehle zur Verfügung: INT, ABS, SGN, VAL sowie die Grundrechenarten und diverse logische Operatoren wie AND, OR und NOT.. Während die arithmetischen Funktionen grundsätzlich mit Fließkommawerten arbeiten, sind die logischen Operationen bereits intern auf den Integer-Wertebereich eingeschränkt.

Den Vorteil des geringeren Platzverbrauchs gegenüber von Fließkommazahlen (zwei statt fünf Bytes Speicherbedarf pro Wert) bieten Integer-Variablen beim BASIC des C64 nur im Falle von Arrays. Wer in einem Programm mit sehr vielen Zahlen nur Integer-Berechnungen anstellen muss, sollte dazu Integer-Arrays verwenden.
Nachteil: Der BASIC-Interpreter verwendet der C64 keine auf Integer optimierte Arithmetik, sondern führt alle Berechnungen über den Umweg einer Konvertierung nach Fließkomma durch, sodass die Auswertung von Integer-Ausdrücken unerwarteterweise sogar mehr Zeit verschlingt als die eines Fließkommaausdrucks.

[Bearbeiten] Weblinks

WP-W11.png Wikipedia: Integer
WP-W11.png Wikipedia: ALU