Wo ist das Problem ?
Code:Dim X as Long, Y as Word X=123456789 Y=43211 X=X+Y 'X=123500000
Hallo,
gibt es eine Möglichkeit, z.b. zu einer word-variable eine long-variable zu addieren?
In C gabs ja das typecasting, wie geht das unter bascom?
danke!
Wo ist das Problem ?
Code:Dim X as Long, Y as Word X=123456789 Y=43211 X=X+Y 'X=123500000
ich habs eigentlich umgekehrt gemeint:
Da bekomme ich einen FehlerCode:Dim X as word, Y as long X=1000 Y=2000 X=X+Y
Du kannst immer problemlos von einer Variable die weniger Speicherplatz benötigt (in Pascal z. Bsp. Byte) zu einer casten die mehr Speicherplatz benötigt. (in Pascal z.Bsp. Integer).
Umgekehrt ist es nicht mehr so einfach, da die Zahl nicht in den zur Verfügung stehenden Speicher passen würde.Da musst Du dich entscheiden welches Byte (das untere oder obere) du casten willst.
z.Bsp.
Var
a : Byte; { 8 Bit }
b : Word; { 16 Bit }
c: Byte;
a := 200;
B: 1000; { Passt nicht in 1 Byte }
c := a: { geht problemlos, da beide 1 Byte=8 Bit }
C := B; { geht nicht, da B eine 16 Bit Zahl ist }
Was geht:
C := (B AND $00FF) ; { untere 8 Bits von B werden rausgeschnitten }
C := ((B AND $FF00) SHL { obere 8 bits werden rausgeschnitten und um 8 stellen nach links verschoben und passen nun in 1 Byte }
So ähnlich sollte es gehen. Schau mal in deinem Handbuch / deiner Hilfe zu deinem Compiler nach..
MfG
Ruedi
Lesezeichen