为什么当我们想要将一个数字的ASCII值转换为一个整数时,我们需要这样做:为什么数字字符的ASCII值等于值加'0'?
value - '0'
?
和周围的其他方式,向整数转换成ASCII码,我们需要做的:
value + '0'
这是为什么?
为什么当我们想要将一个数字的ASCII值转换为一个整数时,我们需要这样做:为什么数字字符的ASCII值等于值加'0'?
value - '0'
?
和周围的其他方式,向整数转换成ASCII码,我们需要做的:
value + '0'
这是为什么?
因为数字字符的整数值由C标准保证是连续的。
因此'1' - '0' == 1
,'2' - '0' == 2
等从中你可以推断出你的公式确实有效。
图片的标题说明:
这是正确的答案,ASCII标准是无关紧要的。 C标准本身保证数字“0”到“9”是相邻的:这些是标准对任何形式保证的唯一字符。 – Lundin 2013-02-12 12:20:05
数字的ASCII值全部按顺序排列。所以0
只是在ASCII代码点48
处标记序列的开始,在位置57
处继续到9
。
只是因为ASCII码为standard定义的数字的编码顺序(48..57)。
由于ASCII数字是一个接一个地编码的。
说'0' == 48
。然后'1' == 49
,'2' == 50
等等。
如果你仔细想想吧,'2' - '0' == 50 - 48 == 2
。同样,2 + '0' == 2 + 48 == 50 == '2'
。
ASCII值是表中符号的位置编号。因此,您使用'0'符号位置号码作为数字符号的偏移量,向其添加整数数字值,您可以计算其位置号码。
注意:两者都假定所讨论的整数在零(0)和九(9)之间。只有在这个范围内才是准确的。 – WhozCraig 2013-02-12 11:59:35