das niedrigste Byte einer 16 Bit Variable uebergeben
-
Hi,
ich habe eine Variable
unsigned short temp;Nun möchte ich nur das niedrigste Byte an eine Funktion übergeben, ähnlich wie:
void fkt((unsigned char)temp) {...}Wie macht man das?
Gruss
Campus
-
Suchste das?
unsigned short niedrigstesBit=temp&1;
-
Eher:
unsigned char niedrigstesByte = temp & 0xFF;
-
volkard schrieb:
Suchste das?
unsigned short niedrigstesBit=temp&1;Das mit den Bits und den Bytes lernst du bestimmt auch irgendwann noch. :p

-
Für die Leute, die Alternativlösungen mögen:
temp << (sizeof(temp)-1) >> (sizeof(temp)-1)odertemp % 0xFF
-
sollte nicht einer simpler static_cast von unsigned short nach unsigned char das gleiche tun? ^^
-
wxSkip schrieb:
Für die Leute, die Alternativlösungen mögen:
temp << (sizeof(temp)-1) >> (sizeof(temp)-1)odertemp % 0xFFWohl eher
temp % 256.
-
campus schrieb:
Hi,
ich habe eine Variable
unsigned short temp;Nun möchte ich nur das niedrigste Byte an eine Funktion übergeben, ähnlich wie:
void fkt((unsigned char)temp) {...}Wie macht man das?
Gruss
CampusUnd warum verwendest du es nicht einfach so wie du es schon gezeigt hast zur Laufzeit?
void fkt(unsigned char temp); /* Prototyp */ ... unsigned short temp; fkt( (unsigned char)temp );?
-
DrakoXP schrieb:
sollte nicht einer simpler static_cast von unsigned short nach unsigned char das gleiche tun? ^^
Mag sein (s.o.) nur dass static_cast in C nicht funktioniert.
-
Wutz schrieb:
DrakoXP schrieb:
sollte nicht einer simpler static_cast von unsigned short nach unsigned char das gleiche tun? ^^
Mag sein (s.o.) nur dass static_cast in C nicht funktioniert.
Wenn die Funktion einen unsigned char nimmt, wird doch sowieso automatisch gecastet?!
-
ach sry, falsches Forum xD
ja, aber C-Style-cast macht in dem Fall doch auch das gleiche :S
-
Deshalb habe ich auch "s.o." geschrieben, was bedeuten sollte "siehe oben" (... wo ich den C konformen Weg zeige).