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 folgendesvoid 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.
-
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.