Falk Brunner schrieb:
> Was ist ein short long?
Das ist eine 24 Bit Variable. Habe ich aus dem Manuel vom HIGH_TECH
Compiler.
Vielen Dank für die Hilfe, jetzt klappt es! Ich war sogar schon ganz nah
dran mit:
1 | d=(((long)(a <<16() | ((long)(b<<8)) | c);
|
Aber da habe ich die Klammern falsch gesetzt und die Convertierung erst
gemacht, als bereits Werte abgeschnitten wurden.
Was mich noch wundert, ist dass ich ein Char um 8 bin verschieben kann,
ohne dass etwas abgeschnitten wird, sobald ich es aber um 12 Bit
verschiebe, klappt es nicht mehr. Hier kommt also wie erwartet y = 0x 00
00 12 00 raus
1 | unsigned char x;
|
2 | unsigned long y;
|
3 | x=0x12;
|
4 | y=x<<8;
|
Hier dagegen kommt y = 0x 00 00 20 00 raus, die 1 wird abgeschnitten.
Aber das soll mich nicht weiter stören. Vielen Dank!