的值char
可以是 0-255,其中不同的字符映射到这些值之一。数字也是按顺序存储的'0'
通过'9'
,但它们通常也不存储为前十个char
价值观。也就是说,角色'0'
没有 ASCII 值0
。的字符值0
几乎总是\0
空字符。
在不了解有关 ASCII 的任何其他信息的情况下,如何减去一个值非常简单'0'
任何其他数字字符中的字符将产生原始字符的 char 值。
所以,这是一个简单的数学:
'0' - '0' = 0 // Char value of character 0 minus char value of character 0
// In ASCII, that is equivalent to this:
48 - 48 = 0 // '0' has a value of 48 on ASCII chart
因此,类似地,我可以用任何一个进行整数数学运算char
数学...
(('3' - '0') + ('5' - '0') - ('2' - '0')) + '0') = '6'
和...之间的不同3
, 5
, or 2
and 0
ASCII 图表上的值恰好等于我们看到该数字时通常想到的面值。减去char '0'
从每个中,将它们加在一起,然后添加'0'
返回最后将为我们提供代表 char 的 char 值,该值将是进行简单数学运算的结果。
上面的代码片段模拟3 + 5 - 2
,但在 ASCII 中,它实际上是这样做的:
((51 - 48) + (53 - 48) - (50 - 48)) + 48) = 54
因为在 ASCII 图表上:
0 = 48
2 = 50
3 = 51
5 = 53
6 = 54