用C語言代碼實現n進制數轉換為十進制數
為了實現進制之間的相互轉化,編程實現輸入任意一個數並輸入該數的進制,然後將其轉換為10進制並輸出。
主要思路是將輸入的數存入一個一維數組中然後進行相應處理。
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- int main(void)
- {
- long t1;
- int i, n, t, t3;
- char a[100];
-
- printf("請輸入一個數:\n");
- gets(a); //將輸入的n進制的數儲存在數組a中
- strupr(a); //將數組中的小寫字母轉化為大寫字母
- t3 = strlen(a); //求出數組的長度
- t1 = 0;
- printf("請輸入轉換的數的進制:\n"); //輸入要轉換的數的進制
- scanf("%d", &n);
- for(i=0; i<t3; i++)
- {
- if(a[i] - '0' >= n && a[i] < 'A' || a[i] - 'A' + 10 >n ) //判斷輸入的數據和進制數是否符合
- {
- printf("data error!!\n"); //錯誤
- exit (0);
- }
- if(a[i] >='0' && a[i] <= '9') //判斷是否為數字
- t = a[i] - '0'; //求出該數字賦值給t
- else if (n >=11 && (a[i] >= 'A' && a[i] <= 'A' +n -10)) //判斷是否為字母
- t = a[i] - 'A' +10; //求出該字母所代表的十進制數
- t1 = t1 *n +t; //求出最終轉換成的10進制數
-
- }
- printf("轉化為的10進制數為 %ld\n", t1);
- return 0;
- }