为什么数字字符的ASCII值等于加'0'的值?

时间:2013-02-12 11:37:14

标签: c ascii

为什么当我们想要将数字的ASCII值转换为整数时,我们需要这样做:

value - '0'

反过来说,要将Integer转换为ASCII,我们需要这样做:

value + '0'

为什么?

5 个答案:

答案 0 :(得分:9)

因为C标准保证数字字符的整数值是连续的。

因此'1' - '0' == 1'2' - '0' == 2等可以推断出您的公式确实有用。

图片的标题说明:

  1. 由于标准保证了这一点,即使目标平台不使用ASCII,它也能正常工作。
  2. 相反,如果标准没有强制要求(它没有使用字母的值),那么这种技术就不可移植;它将取决于使用ASCII的目标系统。

答案 1 :(得分:2)

因为ASCII数字是一个接一个地编码的。

'0' == 48。然后是'1' == 49'2' == 50等等。

如果你仔细想想,'2' - '0' == 50 - 48 == 2。同样,2 + '0' == 2 + 48 == 50 == '2'

答案 2 :(得分:0)

数字的ASCII值全部按顺序排列。因此0只是在ASCII码点48标记序列的开头,在位置9处继续向57

答案 3 :(得分:0)

因为数字代码按照ASCII standard的定义顺序排列(48 .. 57)。

答案 4 :(得分:0)

ASCII值是表中符号的位置编号。所以你使用' 0' 0符号位置编号作为数字符号的偏移量,向其添加整数位值,您可以计算其位置编号。