Introduction
Lektion 18 von 20 im Kurs Mathematische Rätsel von Coddy.
Eine Binärzahl ist eine Zahl, die im Zweiersystem oder Binärsystem dargestellt wird, einer mathematischen Schreibweise, die nur zwei Symbole verwendet: typischerweise „0“ (Null) und „1“ (Eins). [Aus Wikipedia, der freien Enzyklopädie]
Die Notationen: 110=12, 210=102, 310=112, 410=1002 bedeuten, dass die Zahlen 1, 2, 3 und 4 im Dezimalsystem (Zehnersystem) gleich 1, 10, 11 und 100 im Binärsystem sind.
Das Zählen im Binärsystem ähnelt dem Zählen in jedem anderen Zahlensystem. Beginnend mit einer einzelnen Ziffer erfolgt das Zählen durch jedes Symbol in aufsteigender Reihenfolge.
Um eine Ganzzahl aus dem Zehnersystem in ihr Äquivalent im Zweiersystem (Binärsystem) umzuwandeln, wird die Zahl durch zwei geteilt. Der Rest ist das niederwertigste Bit (das Bit ganz rechts). Der Quotient wird erneut durch zwei geteilt; sein Rest wird zum nächstniedrigeren Bit. Dieser Vorgang wird wiederholt, bis ein Quotient von eins erreicht ist. Die Folge der Reste (einschließlich des letzten Quotienten von eins) bildet den Binärwert, da jeder Rest bei der Division durch zwei entweder null oder eins sein muss. Zum Beispiel wird 510 als 1012 ausgedrückt, da:
fünf geteilt durch zwei gleich 2 ist und ein Rest von eins bleibt: 5:2 = 2(1). Das niederwertigste Bit ist also eins. Als Nächstes 2:2=1(0). Das nächste niederwertigste Bit ist also null und das nächste ist eins.
Aufgabe
EinfachSchreiben Sie eine Funktion calcBinary, die eine Ganzzahl zur Basis 10 erhält und deren Entsprechung als Binärzahl im String-Format zurückgibt.
Versuchen Sie, dies ohne integrierte Funktionen zu lösen.
Probier es selbst
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
char* r = calcBinary(n);
printf("%s\n", r);
return 0;
}