Advertisement
HyperSensualNarwhal

_newAlc for hex to dec

Dec 23rd, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. int _hextodec()
  2. {
  3.     const int size = 16;
  4.     long long int power[size], pow = 1;
  5.     long long int dec = 0;
  6.  
  7.     char hex[size] = {};
  8.     cout << "Введите шестнадцатиричное (hexadecimal) число -> "; cin >> hex; cout << endl;
  9.  
  10.     for (int i = 0; i < size; i++)
  11.     {
  12.         power[i] = pow;
  13.         pow *= 16;
  14.     }
  15.  
  16.     //int i = 0;
  17.  
  18.     //for (int i = 0; i < size; ((hex[i] == 'A') ? hex[i] = (int)10 : (hex[i] == 'B') ? hex[i] = (int)11 : (hex[i] == 'C') ? hex[i] = (int)12 : (hex[i] == 'D') ? hex[i] = (int)13 :
  19.     //  (hex[i] == 'E') ? hex[i] = (int)14 : (hex[i] == 'F') ? hex[i] = (int)15 : /* (hex[i] <= 0) ? hex[i] *= (int)0 : */ hex[i] = (char)hex[i] - 48), i++);
  20.     int Digits = 0;
  21.     for (int i = 0; hex[i] != 0; i++)
  22.     {
  23.         if (hex[i] >= 65 && hex[i] <= 70) hex[i] -= 55;
  24.         else if (hex[i] >= 97 && hex[i] <= 102) hex[i] -= 87;
  25.         else if (hex[i] >= 48 && hex[i] <= 57) hex[i] -= 48;
  26.         Digits++;
  27.     }
  28.  
  29.     for (int i = 0; i < Digits; i++)
  30.     {
  31.         dec = dec + hex[Digits - 1 - i] * power[i];
  32.     }
  33.  
  34.     /*for (int i = size - 1, j = 0; i >= 0; i--)
  35.     {
  36.         if (hex[i] > 0) dec = dec + ((int)hex[i] * power[j++]);
  37.     }*/
  38.  
  39.     cout << "Decimal: " << dec << endl << endl;
  40.  
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement