Advertisement
Kyrexar

Binario 1.0

Jul 5th, 2012
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream.h>
  2.  
  3. int pot( int base, int exp ){
  4.     int i, res=base;
  5.  
  6.     if( exp==0 ) return 1;
  7.     if( exp>0 ) for( i=1 ; i<exp ; i++ ) res*=base;
  8.  
  9.     return res;
  10. }
  11.  
  12. int de10_a2( int dec ){
  13.     int bin=0, i;
  14.    
  15.     for( i=0 ; dec>1 ; i++ ){
  16.         bin+=(dec%2)*pot(10,i);
  17.         dec/=2;
  18.     }
  19.  
  20.     bin+=pot(10,i);
  21.  
  22.     return bin;
  23. }
  24.  
  25. int de2_a10( int bin ){
  26.     int dec=0, i;
  27.    
  28.     for( i=0 ; bin>0 ; i++ ){
  29.         dec+=(bin%10)*pot(2,i);
  30.         bin=bin/10;
  31.     }
  32.  
  33.     return dec;
  34. }
  35.    
  36. int main(){
  37.     int num, menu, retry;
  38.    
  39.     do{
  40.         do{
  41.             system("cls");
  42.             cout << " \n 1. De decimal a binario \n 2. De binario a decimal \n 0. Salir \n ";
  43.             cin >> menu;
  44.         }while( menu<0 || menu>2 );
  45.  
  46.         system("cls");
  47.        
  48.         switch( menu ){
  49.             case 0: return 0;
  50.                       break;
  51.             case 1:
  52.                  cout << " \n Introduce el numero decimal: ";
  53.                  cin >> num;
  54.                  cout << " " << num << " en binario es " << de10_a2(num) << " ";
  55.                       break;
  56.             case 2:
  57.                  cout << " \n Introduce el numero binario: ";
  58.                  cin >> num;
  59.                  cout << " " << num << " en decimal es " << de2_a10(num) << " ";
  60.         }
  61.  
  62.         cout << " \n Volver al menu(1=si)? ";
  63.         cin >> retry;
  64.     }while( retry==1 );
  65.  
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement