返回列表 發帖

十進位轉二進位

輸入十進位制的正整數後,自動顯示該數字的二進位制
Su Wa

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int a,b;
  7.     re:
  8.     system("cls");
  9.     cout<<"請輸入一正整數:";
  10.     cin>>a;
  11.     if(a>0 && a%2==0)
  12.     {
  13.      b=a*5;
  14.     cout<<"該數字的二進位制為:"<<b<<endl;
  15.     }else if(a>0 && a%2>0)
  16.     {
  17.     b=(a-a%2)*5+a%2;
  18.     cout<<"該數字的二進位制為:"<<b<<endl;
  19.     }else
  20.     {
  21.     cout<<"!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?"<<endl;
  22.     }
  23.     system("pause");
  24.     goto re;
  25.      system("pause");
  26.      return 0;
  27. }
複製代碼

TOP

  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;

  4. int main(){
  5.   int n;
  6.   re:
  7.   cout<<"輸入十進位制的正整數: ";  
  8.   cin >> n;
  9.   cout<<n<<"的二進位制= ";   
  10.   int b, ten=1, sum=0;
  11.   //b:用來存餘數。
  12.   //ten:為了讓答案變成倒的,每次乘以10倍。
  13.   //sum:用來加總答案。

  14.   while(n>0){ //不斷做直到a=1時
  15.     b=n%2; //b用來計算餘數
  16.     n/=2; //計算餘數之後,就可以把n除以2了!
  17.     sum+=b*ten; //把b值乘以10,存進sum答案中。(第一次乘以1)
  18.     ten*=10; //因為二進位是從下而上的餘數,所以我們每次乘以10,就會變倒的了!
  19.   }

  20.   cout << sum << endl;
  21.   goto re;
  22.   system("pause");
  23.   return 0;
  24. }
複製代碼
May

TOP

  1. #include <iostream>  
  2. #include <cstdlib>  
  3. using namespace std;  
  4. int main()  
  5. {  
  6.     int a[10], n, i;   
  7.     re:
  8.     cout<<"輸入十進位制的正整數: ";                                   
  9.     cin>>n;
  10.     cout<<n<<"的二進位制= ";   
  11.     for(i=0; n>0; i++)   
  12.     {   
  13.         a[i]=n%2;   
  14.         n= n/2;  
  15.     }
  16.     for(i=i-1 ;i>=0 ;i--)   
  17.     {   
  18.         cout<<a[i];
  19.     }
  20.     cout<<endl;   
  21.     goto re;
  22.     system("pause");
  23.     return 0;
  24. }
複製代碼
May

TOP

本帖最後由 洪勻蓁 於 2021-8-30 16:29 編輯
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int a, x=0;
  7.     int b[10];
  8.     cout<<"請輸入正整數: ";
  9.     cin>>a;
  10.     for(int i=0;i<10;i++)
  11.     {
  12.        if(a!=0)
  13.        {
  14.          b[i]=a%2;
  15.          a=a/2;
  16.          x++;      
  17.        }
  18.     }  
  19.     for(int i=x-1;i>=0;i--)
  20.     {
  21.          cout<<b[i];
  22.     }   
  23.     system("pause");
  24.     return 0;
  25. }
複製代碼
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     int a, b, ten=1, sum=0;
  8.     cout<<"請輸入正整數: ";
  9.     cin>>a;
  10.     cout<<a<<"的二進位為 ";
  11.     while(a>0)
  12.     {
  13.        b=a%2;
  14.        a=a/2;
  15.        sum+=b*ten;
  16.        ten=ten*10;     
  17.     }
  18.     cout<<sum<<endl;
  19.     goto re;
  20.     system("pause");
  21.     return 0;
  22. }
複製代碼

TOP

返回列表