歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

用C語言代碼實現n進制數轉換為十進制數

用C語言代碼實現n進制數轉換為十進制數

為了實現進制之間的相互轉化,編程實現輸入任意一個數並輸入該數的進制,然後將其轉換為10進制並輸出。

主要思路是將輸入的數存入一個一維數組中然後進行相應處理。

  1. #include <stdio.h>   
  2. #include <string.h>   
  3. #include <stdlib.h>   
  4. int main(void)  
  5. {  
  6.     long t1;  
  7.     int i, n, t, t3;  
  8.     char a[100];  
  9.   
  10.     printf("請輸入一個數:\n");  
  11.     gets(a);        //將輸入的n進制的數儲存在數組a中   
  12.     strupr(a);      //將數組中的小寫字母轉化為大寫字母   
  13.     t3 = strlen(a); //求出數組的長度   
  14.     t1 = 0;           
  15.     printf("請輸入轉換的數的進制:\n");  //輸入要轉換的數的進制   
  16.     scanf("%d", &n);  
  17.     for(i=0; i<t3; i++)  
  18.     {  
  19.         if(a[i] - '0' >= n && a[i] < 'A' || a[i] - 'A' + 10 >n )  //判斷輸入的數據和進制數是否符合   
  20.         {  
  21.             printf("data error!!\n"); //錯誤   
  22.             exit (0);  
  23.         }  
  24.         if(a[i] >='0' && a[i] <= '9')  //判斷是否為數字   
  25.             t = a[i] - '0';            //求出該數字賦值給t   
  26.         else if (n >=11 && (a[i] >= 'A' && a[i] <= 'A' +n -10)) //判斷是否為字母   
  27.             t = a[i] - 'A' +10; //求出該字母所代表的十進制數   
  28.         t1 = t1 *n +t; //求出最終轉換成的10進制數   
  29.   
  30.     }  
  31.     printf("轉化為的10進制數為 %ld\n", t1);  
  32.     return 0;  
  33. }  
Copyright © Linux教程網 All Rights Reserved