Ú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.