Duclv

Chuyển đổi hệ cơ số

Mar 25th, 2013
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <iomanip>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. int ktrakt(char s)
  9. {
  10.     if (s=='0') return 0;
  11.     if (s=='1') return 1;
  12.     if (s=='2') return 2;
  13.     if (s=='3') return 3;
  14.     if (s=='4') return 4;
  15.     if (s=='5') return 5;
  16.     if (s=='6') return 6;
  17.     if (s=='7') return 7;
  18.     if (s=='8') return 8;
  19.     if (s=='9') return 9;
  20.     if (s=='A'||s=='a') return 10;
  21.     if (s=='B'||s=='b') return 11;
  22.     if (s=='C'||s=='c') return 12;
  23.     if (s=='D'||s=='d') return 13;
  24.     if (s=='E'||s=='e') return 14;
  25.     if (s=='F'||s=='f') return 15;
  26. }
  27.  
  28. char doikt(int s)
  29. {
  30.     if (s==0) return '0';
  31.     if (s==1) return '1';
  32.     if (s==2) return '2';
  33.     if (s==3) return '3';
  34.     if (s==4) return '4';
  35.     if (s==5) return '5';
  36.     if (s==6) return '6';
  37.     if (s==7) return '7';
  38.     if (s==8) return '8';
  39.     if (s==9) return '9';
  40.     if (s==10) return 'A';
  41.     if (s==11) return 'B';
  42.     if (s==12) return 'C';
  43.     if (s==13) return 'D';
  44.     if (s==14) return 'E';
  45.     if (s==15) return 'F';
  46. }
  47.  
  48. bool ktrahople(string s,int a)
  49. {
  50.     int i;
  51.     for(i=0;i<s.length();i++)
  52.     {
  53.         if (ktrakt(s.at(i))>a) return 1;
  54.     }
  55. }
  56.  
  57. int tocs10(string s,int b)
  58. {
  59.     int i,t=0;
  60.     for(i=0;i<s.length();i++) t=t*b+ktrakt(s.at(i));
  61.     return t;
  62. }
  63.  
  64. // Ham dao chuoi su dung de quy
  65. string revstr(string s )
  66. {
  67.     return s.empty() ? s : revstr(s.substr(1))+s[0];
  68. }
  69.  
  70. // ham dao chuoi don gian
  71. string daochuoi(string s)
  72. {
  73.     string s1;
  74.     int i;
  75.     for(i=s.length()-1;i>=0;i--)
  76.     {
  77.         s1=s1+s.at(i);
  78.     }
  79.     return s1;
  80. }
  81.  
  82. string cs10to(int a, int b)
  83. {
  84.     string s="";
  85.     while (a!=0)
  86.     {
  87.         s=s+doikt(a%b);
  88.         a=a/b;
  89.     }
  90.     return revstr(s);
  91. }
  92.  
  93. int main()
  94. {
  95.     int n,i,a,b;
  96.     string in,out;
  97.     do
  98.     {
  99.         system("cls");
  100.         cout<<"Nhap he co so A va B (A->B): ";
  101.         cin>>a>>b;
  102.     }
  103.     while(a>17||b>17);
  104.     do
  105.     {
  106.         system("cls");
  107.         cout<<"Nhap so can chuyen doi: ";
  108.         cin>>in;
  109.     }
  110.     while(ktrahople(in,a));
  111.     i=tocs10(in,a);
  112.     out=cs10to(i,b);
  113.     cout<<out<<endl;
  114.     system("pause");
  115. }
Advertisement
Add Comment
Please, Sign In to add comment