用C語言代碼實現n進制數轉換爲十進制數
[日期:2012-04-06] 來源:Linux社區 作者:junjieguo
用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.}
本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文鏈接:http://www.linuxidc.com/Linux/2012-04/58093.htm