Dezimalzahl in Binärzahl umrechnen



  • Hallo,

    gibt es eine Funktion in ANSI-C die eine Dezimalzahl in eine Binärzahl umkonvertiert ?

    MfG



  • bau dir doch selber eben eine..
    einfach teilen und den modulo faktor merken..

    überigens steht dazu auch was in der faq.. glaub ich 🙂



  • Kurt01 schrieb:

    gibt es eine Funktion in ANSI-C die eine Dezimalzahl in eine Binärzahl

    Ja, die gibt es. Geht mit sscanf.

    char dezimalzahl[]="123";
    int binaerzahl;
    sscanf(dezimalzahl, "%d", &binaerzahl);



  • @dr.zoid
    oder einfach atoi() 😃

    Aber ich glaube, dass kurt was anderes will...



  • Warum umkonvertieren? Im Computer steht jede Zahl eh schon binär. Die Frage ist, wie schafft man es eine Zahl in einen String zu konvertieren, der die Zahl als Binärzahl darstellt?

    Das Binärsystem:
    Man nehme 2 Ziffern: 0 und 1. Nun fangen wir an zu zählen
    0 = 0
    1 = 1
    Oha! Nun haben wir ein Problem. Es gibt ja keine 2! Was machen wir denn im Dezimalsystem, wenn wir mit den Ziffern am Ende sind? - Genau! Wir fangen einfach bei 0 wieder an und schreiben eine 1 davor! So machen wir das einfach auch mal beim Binärsystem.
    10 = 2
    11 = 3
    Und nun? Wieder sind wir mit unseren Ziffern am Ende. Also Schema F: mit 0 fortfahren und 1 davorschreiben.
    100 = 4
    101 = 5
    110 = 6
    111 = 7
    ... usw.

    Soviel zur Schreibweise der binären Zahlen. Wie gesagt, stehen die alle Zahlen bereits binär im Computer. Um jetzt an die einzelen Bits (eine Stelle einer binären Zahl) zu kommen, stellt uns der Computer verschiedene Operationen zur Verfügung: AND, OR, XOR, NOT (die fallen mir jetzt auf die Schnelle ein, kA ob es mehr gibt)

    NOT
    Die Negation macht aus einer Zahl genau ihr gegenteil: steht 0 schreibt er 1 und umgekehrt.
    Bspl: NOT 0101 = 1010

    AND
    Die binäre Verundung vergleicht 2 Zahlen bitweise (Stelle für Stelle). Wenn an der gleichen Stelle beider Zahlen eine 1 steht, schreibt AND 1, wenn nicht dann 0.
    Bespl: 10110
    AND 01101
    ---------
    00100
    ^ Nur hier steht bei beiden Zahlen eine 1.

    OR
    Die binäre Veroderung vergleicht ebenfalls 2 Zahlen bitweise, verhält sich aber anders. Es schreibt 1, wenn sich an der gleichen Stelle in beiden Zahlen mindestens eine 1 steht, sonst 0. Also entweder Zahl1 oder Zahl2 oder beide.
    Bspl: 11001
    OR 01101
    --------
    11101
    ^ Nur hier steht bei beiden Zahlen keine 1.

    XOR
    Die bitweise Exclusieve Veroderung schreibt 1, wenn in Zahl1 1 und in Zahl2 0 steht oder umgekehrt. Also entweder Zahl1 oder Zahl2, nicht beide.
    Bespl: 11001
    XOR 01101
    ---------
    10100
    ^ Hier steht bei Zahl1 1 und bei Zahl2 0, also schreibt XOR 1
    ^ Hier steht bei Zahl1 0 und bei Zahl2 1, also schreibt XOR 1

    So, mit diesen Informationen solltest du zum Ziel kommen. 🙂
    __
    Grüße, DennisB



  • ARGH!! Hätte ich doch vorher die Vorschau angeschaut! ... mist!


Anmelden zum Antworten