程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言實現字符串中(10進制和16進制)轉成十進制數

C語言實現字符串中(10進制和16進制)轉成十進制數

編輯:關於C語言

C語言實現字符串中(10進制和16進制)轉成十進制數


如何將字符串中的10進制數和16進制數提取出來,看以下代碼:

#include 
typedef char TUINT8 ;
typedef int  TUINT32;

TUINT32 Read_DecNumber(const TUINT8* str);
TUINT32 Read_HexNumber(const TUINT8* str); 

int main(void)
{
	int ret = Read_DecNumber("1000");
	int d = Read_HexNumber("A");
	printf("將字符串中的數字轉化為10進制數 :%d\n",ret);
	printf("將字符串中的16進制數轉化為10進制數 :%d\n",d);
	return 0 ;
}
//將字符串中的數字轉化為10進制數 
TUINT32 Read_DecNumber(const TUINT8* str)
{
    TUINT32 value;

    if (! str)
    {
        return 0;
    }
    value = 0;
    while ((*str >= '0') && (*str <= '9'))
    {
        value = value*10 + (*str - '0');
        str++;
    }
    return value;
}
//將字符串中的16進制數轉化為10進制數 
TUINT32 Read_HexNumber(const TUINT8* str)
{
    TUINT32 value;

    if (! str)
    {
        return 0;
    }
    value = 0;
    while (1)
    {
        if ((*str >= '0') && (*str <= '9'))
        {
            value = value*16 + (*str - '0');
        }
        else if ((*str >= 'A') && (*str <= 'F'))
        {
            value = value*16 + (*str - 'A') + 10;
        }
        else if ((*str >= 'a') && (*str <= 'f'))
        {
            value = value*16 + (*str - 'a') + 10;
        }
        else
        {
            break;
        }
        str++;
    }
    return value;
}
運行結果:

\
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved