为什么当我们想将一个数字的 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”符号位置编号作为数字符号的偏移量,向其添加一个整数数字值,您可以计算其位置编号。