Menu
Coddy logo textTech

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.

 

challenge icon

Wyzwanie

Łatwy

Napisz 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

7Najmniejsza wspólna wielokrotność

WprowadzenieProblem

2Wielokrotności 3 lub 5

ProblemRozwiązanie bez pętli

5Równanie diofantyczne

WprowadzenieProblem

6Największy wspólny dzielnik

WprowadzenieAlgorytm EuklidesaFunkcja phi

9Liczby binarne

Wprowadzenie

Poćwicz samodzielnie: Kompilator C online