進制轉換

用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章