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 % 0xFF
Wohl 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).