wolfgang köck
16.02.2006, 09:30
hi,
ich übertrage daten mit den protokoll SNAP mit folgenden aufbau:
preamble, sync, hdb2, hdb1, dab, sab, db16, db15, ..., db01, crc2, crc1
das funktioniert ja prima.
nun hab ich aber das problem mit negativen zahlen.
ich muß in bascom integer definieren, jedoch hat integer
mehr als 8 bit (1 byte)
wie kann ich diese integer-zahl in ein vorzeichenbehaftetes byte umwandeln bzw. umgekehrt.
der komplizierte weg ist
if integer-zahl <0 then
set minus
byte-zahl.0=not integer-zahl.0
byte-zahl.1=not integer-zahl.1
.....
byte-zahl.6=not integer-zahl.6
byte-zahl.7=minus
else
reset minus
byte-zahl.0=integer-zahl.0
byte-zahl.1=integer-zahl.1
.....
byte-zahl.6=integer-zahl.6
byte-zahl.7=minus
end if
vielen dank für eure hilfe im voraus!
Gruß Wolfgang
ich übertrage daten mit den protokoll SNAP mit folgenden aufbau:
preamble, sync, hdb2, hdb1, dab, sab, db16, db15, ..., db01, crc2, crc1
das funktioniert ja prima.
nun hab ich aber das problem mit negativen zahlen.
ich muß in bascom integer definieren, jedoch hat integer
mehr als 8 bit (1 byte)
wie kann ich diese integer-zahl in ein vorzeichenbehaftetes byte umwandeln bzw. umgekehrt.
der komplizierte weg ist
if integer-zahl <0 then
set minus
byte-zahl.0=not integer-zahl.0
byte-zahl.1=not integer-zahl.1
.....
byte-zahl.6=not integer-zahl.6
byte-zahl.7=minus
else
reset minus
byte-zahl.0=integer-zahl.0
byte-zahl.1=integer-zahl.1
.....
byte-zahl.6=integer-zahl.6
byte-zahl.7=minus
end if
vielen dank für eure hilfe im voraus!
Gruß Wolfgang