Wprowadzenie
Lekcja 18 z 20 w kursie Zagadki matematyczne w Coddy.
Liczba binarna to liczba zapisana w systemie liczbowym o podstawie 2 lub systemie binarnym, czyli metodzie zapisu matematycznego wykorzystującej tylko dwa symbole: zazwyczaj „0” (zero) i „1” (jeden). [Z Wikipedii, wolnej encyklopedii]
Zapisy: 110=12, 210=102, 310=112, 410=1002 oznaczają, że liczby 1,2,3 i 4 w systemie dziesiętnym (systemie liczbowym o podstawie 10) są równe odpowiednio 1,10,11 i 100 w systemie binarnym.
Liczenie w systemie binarnym przypomina liczenie w każdym innym systemie liczbowym. Zaczynając od jednej cyfry, liczenie przebiega przez kolejne symbole w porządku rosnącym.
Aby zamienić liczbę całkowitą z systemu o podstawie 10 na jej odpowiednik w systemie o podstawie 2 (binarnym), dzieli się ją przez dwa. Reszta jest najmniej znaczącym bitem (skrajnym prawym bitem). Iloraz ponownie dzieli się przez dwa; jego reszta staje się następnym najmniej znaczącym bitem. Ten proces powtarza się, aż iloraz osiągnie wartość jeden. Sekwencja reszt (wraz z końcowym ilorazem równym jeden) tworzy wartość binarną, ponieważ każda reszta przy dzieleniu przez dwa musi wynosić zero lub jeden. Na przykład 510 zapisuje się jako 1012, ponieważ:
pięć podzielone przez dwa daje 2 i resztę jeden: 5:2 = 2(1). Zatem najmniej znaczący bit to jeden. Następnie 2:2=1(0). Zatem następny najmniej znaczący bit to zero, a kolejny to jeden.
Wyzwanie
ŁatwyNapisz funkcję calcBinary, która przyjmuje liczbę całkowitą w systemie dziesiętnym i zwraca jej odpowiednik w systemie binarnym w postaci ciągu znaków.
Spróbuj zrobić to bez użycia wbudowanych funkcji
Spróbuj swoich sił
#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;
}
Wszystkie lekcje w sekcji Zagadki matematyczne
Poćwicz samodzielnie: Kompilator C online