内部解析数字,特别是十进制数如何工作?

时间:2015-05-24 17:55:43

标签: parsing numbers

如何将字符串内部解析为数字格式?我想象过这样的事情。这与实际实现相匹配吗?

(与任何特定编程语言无关)

int getDigit(char c)
{
    if (c == '0')
        return 0;
    if (c == '1')
       return 1;
    if (c == '2')
       return 2;
    // ...
}

int parseInt(string str)
{
    int result = 0;

    for (int i = 0; i < strlength(str); i++)
        result = result * 10 + getDigit(str[i]);

    return result;
}

1 个答案:

答案 0 :(得分:0)

您首先获取每个数字值,然后将其乘以10,这是一种常见的实现。例如,this one from MS与您的实现基本相同。

在大多数语言中,您可以通过从输入字符中减去字符'0'来获取整数值,因为文本编码的工作方式。