Das Rechnen im Hex-System ist natürlich nicht ganz einfach: Was ist AFh + 3Ch ? Aber wenn wir bestimmte Bits eines Bytes oder eines Byte-Worts setzen wollen, ist das ganz praktisch: 0Fh, das sind die niedrigen 4 Bits, F0h, das sind die hohen vier Bits eines Bytes. Der Darstellungsraum eines 16-Bit-Worts geht von 0 bis FFFFh. Praktisch, nicht?
In QBASIC kann man Hex-Zahlen direkt angeben, ohne sie ins Dezimalsystem umrechnen zu müssen. Allerdings nicht dadurch, dass ein h hinter die Zahl gestellt wird, sondern es muss ein "&h" vor die Zahl gestellt werden.
? &hF1D3+&h7EA2..ist also kein Problem. Nur dass QBASIC das Ergebnis leider dezimal ausgibt. Aber auch das kann man ändern:
? HEX$(&hF1D3+&h7EA2)..gibt das Ergebnis hexadezimal zurück. Spätestens hier fällt uns allerdings auf, dass das Ergebnis falsch zu sein scheint. Es erscheint 7075h. Das ist aber kleiner als der erste Summand. Wieso? Nun, die Fähigkeit von QBASIC zum Umgang mit Hex-Zahlen beschränkt sich leider auf 16-Bit-Zahlen. Kommt es bei der Addition zu einem Summanden grösser als FFFFh, so wird ein Überlauf erzeugt, d.h. es wird so getan, als ob 10000h = 0h sei und das Ergebnis entspricht dann also dem Rest. In Wirklichkeit ist unser Rechenergebnis also 17075h.
Übung: Schreiben Sie in QBASIC einen Hex-Rechner für 64-Bit-Zahlen!