oto kod:
Kod: Zaznacz cały
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int nOpcja;
cout << " Wybierz opcje:" << endl;
cout << "1. Zdziesietnego na binarny" << endl;
cout << "2. Z twujkowego na dziesietny" << endl;
cin >> nOpcja;
switch(nOpcja)
{
case 1:
int liczba;
cout << "Podaj liczbe: " ;
cin >> liczba;
int liczba2=0;
bool tablica[10]; // <--- deklaracja tablicy 10-elementowej typu bool (przyjmuje wartosci 0 lub 1)
int index=0; // <---- indeks tablicy ustawiamy na zero
// dzieli przez 2 liczbe i oblicza reszte
while(liczba>0)
{
int iloczyn= liczba/2;
int reszta= liczba%2;
tablica[index++]=reszta; //<---- zapisujemy reszte do tablicy o indeksie "index" i zwiekszamy zmienna index o 1
liczba = iloczyn;
}
// odwraca liczbe uzyskano w pierwszej p?tli
cout<< "Oto liczba ktora podales w systemie BINARNYM: ";
//w tej petli cofamy: wypisujemy wszystkie elementy tablicy
//od konca (czyli od wartosci index, na ktorej skonczylismy) az do 0
while (index>0)
{
cout << tablica[index-1]; //wypisz kolejny element tablicy
index--; break; //zmniejsz index o 1
}
}
switch(nOpcja)
{
case 2:
int bin_to_dec(const string & bin) //zwraca 0 jesli string jest pusty
{
int dec = 0;
string::size_type i = bin.size();
while(i--)
if(bin[i] == '1')
dec += 1 << (bin.size() - i - 1);
else
if(bin[i] != '0') //jesli cos w stringu znajduje sie cos innego niz 0 lub 1 fk. zwraca 0
return 0;
return dec;
}
int main()
{
cout << "Podaj liczbe binarnie: ";
string bin;
getline(cin, bin);
cout << "Liczba binarna " + bin + " to dziesietnie: " << bin_to_dec(bin) << endl;
string s;
getline(cin, s);
}
}
}