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) oder temp % 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) oder temp % 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
    Campus

    Und 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).


Log in to reply