Bitmuster anzeigen



  • Der Modulo-Operator hat da sehr wohl etwas zu suchen. Du kannst nämlich eine Zahl in Binärdarstellung konvertieren, indem du wiederholt durch 2 teilst und die Reste notierst. Etwa:
    37 = 1 (mod 2)
    18 = 0 (mod 2)
    9 = 1 (mod 2)
    4 = 0 (mod 2)
    2 = 0 (mod 2)
    1 = 1 (mod 2)

    => 3710 = 1001012.

    Dein "& 1" im ersten Beispiel ist übrigens nichts anderes als die Restberechnung. Die ungeraden Zahlen haben in ihrer Binärdarstellung am least significant bit eben eine 1, deswegen ist x & 1 äquivalent zu x % 2.



  • gdfgdfg schrieb:

    Vielleicht std::bitset. Keine Ahnung 🤡

    Denke das passt. String via ifstream mit der Datei beladen, diesen String zum laden der bitset klasse nutzen und diese dann in einen string umwandeln und ausgeben lassen(z.B. via std::cout).



  • Vielen Dank an alle für die Antworten.

    Jetzt hab ich noch eine Frage:
    Man nehme an, der vector hat die größe 10. Dann kann ich auf die elemente 0..9 zugreifen.
    Aber warum funktioniert folgendes

    void to_binary::show()
    {
        for (size_t i = 0; i < binary.size(); i++)
        {
            std::cout << binary[i];
        }
    }
    

    aber folgendes nicht:

    void to_binary::show()
    {
        for (size_t i = binary.size()-1; i >= 0; i--)  // i > 0 funktioniert
        {
            std::cout << binary[i];
        }
    }
    

    Es kommt keine Fehlermeldung, sondern beim Ausführen des Programms ein Seg-fault.

    Danke.


  • Mod

    Wenn du von einem size_t mit Wert 0 Eins abziehst, welchen Wert bekommst du dann?



  • int main()
    {
    	int i = 345456365;
    	std::cout << std::bitset<sizeof i * CHAR_BIT>(i) << '\n';
    }
    


  • SeppJ schrieb:

    Wenn du von einem size_t mit Wert 0 Eins abziehst, welchen Wert bekommst du dann?

    std::numeric_limits<size_t>::max() ?
    (Stichwort für den TE: Zweierkomplement/Raumfolgearithmetik)

    cooky451 schrieb:

    int main()
    {
    	int i = 345456365;
    	std::cout << std::bitset<sizeof i * CHAR_BIT>(i) << '\n';
    }
    

    Das ist doch keine Kunst! 😃 🤡



  • Newsflash Sone: du warst nicht gefragt.
    Und das Wort Raumfolgearithmetik verwendet im echten Leben genau niemand.



  • Was soll denn das ueberhaupt sein? 😮



  • Kellerautomat schrieb:

    Was soll denn das ueberhaupt sein? 😮

    Ich glaube, das ergibt sich einem erst, wenn man high ist. 😃



  • Ach, Leute! Das liegt am Galileo Computing Verlag. Das Fachbuch, das mir diesen Begriff "vermittelte", kommt aus genau diesem. Jetzt hab ich meine Lektion endgültig gelernt.


Anmelden zum Antworten