Advertisement
heranchris0430

2進制轉10進制

Apr 29th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  2進制轉10進制
  4. //
  5. //  Created by Chris on 2017/3/18.
  6. //  Copyright © 2017年 Chris. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <stdlib.h>
  11. #include <math.h>
  12.  
  13. using namespace std;
  14.  
  15. int main() {
  16.     int bin[ ] = { 0 },  m = 0, brami = 0, mn = 0, h = 0, n = 0, y = 0, x = 0;
  17.     while (1){
  18.        
  19.         brami = 0;
  20.        
  21.         cout << "Enter Binary ";
  22.         cin >> n;
  23.        
  24.         x = n;
  25.         y = n;
  26.        
  27.         while (x != 0){
  28.             x /= 10;
  29.             m ++;
  30.         }           //計算n值為幾位元
  31.        
  32.         for (int i = 0 ; i < m ; i ++){
  33.             h = y % 10;
  34.             if (h > 1 || h < 0) goto end;
  35.             y /= 10;
  36.         }           //判斷是否為2進制
  37.        
  38.         while (n != 0){
  39.             for (int i = 0 ; i < m ; i ++){
  40.                 bin [ i ] = n % 10;
  41.                 n /= 10;
  42.             }           //將n的餘數放入array
  43.         }
  44.        
  45.         for (int i = 0 ; i < m ; i ++){
  46.             mn = 0;
  47.             mn = pow (2 , i);           //求第i位元的值
  48.             brami = brami + mn * bin [ i ];             //將 [i]array * i位元值 放入brami
  49.         }
  50.        
  51.         cout << endl;
  52.         cout << brami << endl;
  53.     }
  54.    
  55. end:
  56.     cout << "超出數值" << endl;
  57.    
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement