Xcode寫C++(程序練習11:十六進制轉十進制數)

寫一個函數,輸入一個十六進制數,輸出相應的十進制數

#include <iostream>
int HexTolnt(const char *str)
{
    assert(str!=NULL);
    int tmp = 0;
    char ch;
    if(str[0]!='0'||(str[1]!='x'&&str[1]!='X'))
        return -1;
    str+=2;//跳過0x
    while(isxdigit(*str))//'1'->1:*str-'0'  'a'-'0'不等於10
    {
        if(isdigit(*str))
        {
            tmp = tmp*16 + *str-'0';
        }
        else//字母 0xAb
        {
            ch = *str;
            if(isupper(*str))
            {
                ch = tolower(*str);
            }
            tmp = tmp*16+ch-'a'+10;//將小寫字母轉成對應的十六進制數字
        }
        str++;
    }
    return tmp;
}

int main()
{
    printf("%x\n",HexTolnt("0x1234ab"));
    return 0;
}

將"0x1234ab"由十六進制轉成十進制,輸出結果爲"1234ab"
在這裏插入圖片描述

源代碼如下:
#include
int HexTolnt(const char *str)
{
assert(str!=NULL);
int tmp = 0;
char ch;
if(str[0]!=‘0’||(str[1]!=‘x’&&str[1]!=‘X’))
return -1;
str+=2;//跳過0x
while(isxdigit(*str))//‘1’->1:*str-‘0’ ‘a’-'0’不等於10
{
if(isdigit(str))
{
tmp = tmp
16 + *str-‘0’;
}
else//字母 0xAb
{
ch = *str;
if(isupper(*str))
{
ch = tolower(str);
}
tmp = tmp
16+ch-‘a’+10;//將小寫字母轉成對應的十六進制數字
}
str++;
}
return tmp;
}

int main()
{
printf("%x\n",HexTolnt(“0x1234ab”));
return 0;
}

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