====== 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
#include
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//.