9. seminář - Procvičování 3

TEACHINGZPC1

Úkoly

V jazyku C naprogramujte funkce dec_to_bin a bin_to_dec, kde dec_to_bin převede číslo v desítkové soustavě do binární a výsledek uloží do pole binary_number. Funkce bin_to_dec převede číslo zapsané jako řetězec ve dvojkové soustavě a vrátí hodnotu v desítkové soustavě. Při řešení je možné použít funkci strlen z knihovny string.h (použití viz příklad).

Hlavičky funkcí


    void dec_to_bin(int number, char binary_number[])

    int bin_to_dec(char binary_number[])

Příklad


    #include <stdio.h>
    #include <string.h> // Import knihovny string.h

    void dec_to_bin(int number, char binary_number[]) {
        // Doplnte reseni
    }

    int bin_to_dec(char binary_number[]) {
        // Doplnte reseni
    }

    int main () {

        char binary_number[] = "100011";
        // Zde ulozime vysledek vime ze int pouziva 32 bitu v pameti.
        // Pro kazdy bit tedy mame jeden prvek pole ktery bude mit hodnotu '1' nebo '0'.
        // Plus musime pocitat s '\0' na konci retezce.
        char binary_result[33];
        int decimal_number = 923856;

        int decimal_result = bin_to_dec(binary_number);

        dec_to_bin(decimal_number, binary_result);

        printf("Decimal result is %i\n", decimal_result);
        printf("Binary result is %s\n", binary_result);

        // Funkce strlen vraci delku retezce jako unsigned long
        printf("Binary number length is %lu\n", strlen(binary_number));

      return 0;
    }

Výstup


    Decimal result is 35.
    Binary result is 00000000000011100001100011010000.