Převod z dvojkové soustavy do desítkové
Program čte jednotlivé binární číslice (znaky) do doby, než narazí na konec řádky, nebo jiný (nepovolený) znak.
Zdrojový kód
/* binToDec.cpp Jakub Bureš SPŠE V Úžlabině build using: g++ -Wall -Wno-long-long -pedantic binToDec.cpp -o binToDec */ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { unsigned long long desitkove = 0; while(true) { char cislice = getchar(); if (cislice == '\n') break; switch(cislice) { case '0': desitkove = desitkove * 2; break; case '1': desitkove = desitkove * 2 + 1; break; default: puts("Chybny vstup!"); return 1; } } printf("Vysledek je: %llu\n", desitkove); return 0; }
Ukázka běhu programu
burak@debbie:$ ./binToDec 101010 Vysledek je: 42
Návrhy na cvičení
- Upravte program tak, aby využíval cyklus do-while. Všimnětě si značného zjednodušení výsledného kódu.
- [Pokročilé] Vytvořte program(y) pro převod z dalších číselných soustav do desítkové soustavy. Můžete použít identický princip, stačí identifikovat, jaké číslo ve výpočtu představuje základ soustavy a které hodnotu číslice.