Hilfe zur Aufgabe



  • Kann mir einer vielleicht dabei helfen, da ich die komplette Aufgabenstellung nicht verstehe?

    Schreiben Sie ein kleines Programm, dass mit den Operatoren Modulo = „%“ und dem UND-Operator = „&“ Zahlen manipuliert.
    Dabei sollen beide Operatoren vergleichend verwendet werden (= alle Funktionen parallel).

    Es soll ein Zahlen-Wert long sich aus 4 x long zusammensetzen wobei die entsprechendend Zahlen durch Shift-Operationen = „<<“ oder „>>“ an die entsprechende Stelle Positioniert werden sollen.
    Beispiel:

    Long Wert1 =
    Long Wert2 =
    Long Wert3 =
    Long Wert4 =

    Long WertEnde = Wert4 * 0x0ffff 0000 0000 0000 + Wert3 * 0x0000 ffff 0000 0000 + Wert2 * 0x0000 0000 ffff 0000 + Wert1 * 0x0000 0000 0000 0000 ffff;
    Long WetEndeInvers = ~ Wert4 * 0x0ffff 0000 0000 0000 + ~Wert3 * 0x0000 ffff 0000 0000 + ~Wert2 * 0x0000 0000 ffff 0000 + ~Wert1 * 0x0000 0000 0000 0000 ffff;

    Hier steht ja schon die Lösung, aber der Operator „*“ soll nicht verwendet werden sondern „<<“ und „>>“ sowie „%“ und „&“.

    Vielen lieben dank



  • Ich will keinen fertigen code oder beispiele.
    Ich will nur einer Erklärung die ich begreife.



  • user4fun schrieb:

    Ich will keinen fertigen code oder beispiele.
    Ich will nur einer Erklärung die ich begreife.

    So ganz werd ich aus der Aufgabenstellung nicht schlau, was Dein Lehrer da will.



  • Wert4 soll nach ganz links, danach Wert3, dann Wert2, dann Wert1.

    Du sollst sie maskieren und dann an die richtige position schieben.
    Ich finde die Art wie die Aufgabe gestellt ist auch etwas konfus.

    Hier ein paar shift Beispiele:

    0x100 << 4 // => 0x1000
    0x10 << 8 // => 0x1000
    

    Hier ein maskierungsbeispiel:

    unsigned int val = 0b0101'1100;
    unsigned int mask = 0b1111'0000;
    
    mask & val; // => 0b0101'0000;
    


  • habs begriffen
    Mein Lehrer stellt seine Aufgaben leider immer so knifflig..... 😃
    Den Rest sollte ich alleine schaffen danke 🙂


Log in to reply