为什么当我们想将一个数字的 ASCII 值转换为整数时,我们需要这样做:
value - '0'?
反过来,要将 Integer 转换为 ASCII,我们需要这样做:
value + '0'
这是为什么?
因为C标准保证数字字符的整数值是连续的。
因此'1' - '0' == 1,'2' - '0' == 2等,您可以从中推断出您的公式确实有效。
旁注:
因为ASCII数字因此一个接一个地被编码。
说'0' == 48。然后'1' == 49,'2' == 50以此类推。
如果你仔细想想,'2' - '0' == 50 - 48 == 2。同样,2 + '0' == 2 + 48 == 50 == '2'。
数字的ASCII值都是按顺序排列的。所以0只需在 ASCII 码点标记序列的开始48,一直到9位置57。
仅仅因为 ASCII标准定义的数字代码是按顺序排列的 (48 .. 57) 。
ASCII 值是一个符号在表中的位置编号。因此,您使用“0”符号位置编号作为数字符号的偏移量,向其添加一个整数数字值,您可以计算其位置编号。