Advertisement
dima_kopat

ДЗ 11-2-3 2=>10

Aug 27th, 2016
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. /*
  2. Написать функцию для перевода числа,
  3. записанного в двоичном виде, в десятичное представление.
  4. */
  5.  
  6. #include <iostream>
  7.  
  8. using namespace std;
  9.  
  10. void convert(int binaryNumber);
  11. bool validation(int binaryNumber);
  12.  
  13. int main()
  14. {
  15.     int userBinaryNumber;
  16.  
  17.     cout << "This program converts the binary number to decimal." << endl <<
  18.         "Enter the number in the binary system: ";
  19.     cin >> userBinaryNumber;
  20.     convert(userBinaryNumber);
  21. }
  22.  
  23. void convert(int binaryNumber)
  24. {
  25.     if (!validation(binaryNumber))
  26.     {
  27.         return;
  28.     };
  29.  
  30.     int multiplier = 1;
  31.     int decimalNumber = 0;
  32.     int numberDegree = 0;
  33.  
  34.     cout << "Number " << binaryNumber << " in decimal = ";
  35.  
  36.     do
  37.     {
  38.         decimalNumber += binaryNumber % 10 * multiplier;
  39.         multiplier *= 2;
  40.         binaryNumber /= 10;
  41.     } while (binaryNumber > 0);
  42.    
  43.     cout << decimalNumber << endl;
  44. }
  45.  
  46. bool validation(int binaryNumber)
  47. {
  48.     do
  49.     {
  50.         if ((binaryNumber % 10) == 1 || (binaryNumber % 10) == 0)
  51.         {
  52.             binaryNumber /= 10;
  53.         }
  54.         else
  55.         {
  56.             cout << "Incorrect value" << endl;
  57.             return false;
  58.         }
  59.     } while (binaryNumber > 0);
  60.     return true;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement