Bank auslesen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Seven

Betreff: Bank auslesen

BeitragSa, Nov 26, 2011 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich fange gerade an Speicherbänke in meinem Programm anzulegen
und da stieß ich auf ein Problem. Ein kleiner Nebencode hat mich näher
an den Fehler geführt, aber was genau falsch ist, weiß ich nicht.

BlitzBasic: [AUSKLAPPEN]
Bank = CreateBank(5)
PokeInt Bank,0,1000
PokeByte Bank,1,59
Print PeekInt(Bank,0)
Print PeekByte(Bank,1)
WaitKey


Was ist falsch?
Als erste Zahl wird 15336 ausgegeben
und als zweite Zahl wird 59 ausgegeben.

ZEVS

BeitragSa, Nov 26, 2011 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst dir vor Augen führen, wie Banks funktionieren. Eine leere Bank sieht im RAM so aus:
Code: [AUSKLAPPEN]
00000000 00000000 00000000 00000000 00000000

Mit dem ersten Komando änderst du die Bank wie folgt:
Code: [AUSKLAPPEN]
00000000 00000000 00000000 00000011 11101000

(hier Big Endian).
Mit dem zweiten Komando überschreibst du das zweite Byte (hier von rechts):
Code: [AUSKLAPPEN]
00000000 00000000 00000000 00111011 11101000

Liest du jetzt wieder den Integrer aus, so erhälst du aus 00000000 00000000 00111011 11101000 die Dezimalzahl 15336.
Für eine korrekte Verarbeitung musst du das Byte (1 Byte) außerhalb der von dem Int benutzten 4 Bytes platzieren - hier also index 4.

ZEVS
 

Seven

BeitragSa, Nov 26, 2011 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Verstehe. Gut, dann kann ich weitermachen. Danke:)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group