Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <stdexcept>
- bool CistiBroj(std::string s)
- {
- for(int i(0); i < s.length(); i++)
- if(!(s[i] >= '0' && s[i] <= '1' || s[0] == '-'))
- return false;
- return true;
- }
- int bin2dec(std::string s)
- {
- if(!CistiBroj(s)) throw std::domain_error("Proslijedjeni broj nije binarni!");
- int decimalni(0);
- for(int i(0), j(0); i < s.length(); i++)
- {
- int pow(1);
- j++;
- if(s[i] == '1')
- for(int k(0); k < s.length() - j; k++, pow*=2);
- else
- pow = 0;
- decimalni+=pow;
- }
- if(s[0] == '-')
- decimalni*=-1;
- return decimalni;
- }
- int main()
- {
- try
- {
- std::string s;
- std::cout << "Unesite binarni broj: ";
- std::getline(std::cin, s);
- std::cout << "Uneseni broj u dekadskom je: " << bin2dec(s);
- }
- catch(std::domain_error izuzetak)
- {
- std::cout << izuzetak.what() << std::endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement