歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 用C語言代碼實現n進制數轉換為十進制數

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

日期:2017/3/1 10:25:08   编辑:Linux編程

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