由于使用字符形式存储数字时,存储的是数字对应的 ASCII 码!
由于在 ASCII 码表中字符 '0' 到字符 '9' 是连续存放的,所以下面的程序可以获得字符对应的数字:
char c = '2'; //c中存储的是字符'2'的ASCII码 int k = c - '0'; //k即为字符'2'对应的整数2
这段程序的目的是将字符形式的数字转换为相应的整数。
char c = '2';:在这一行,字符 '2' 被赋值给变量 c。在计算机中,字符是以ASCII码的形式存储的,所以 c 中实际存储的是字符 '2' 对应的ASCII码。
int k = c - '0';:这一行将字符 '2' 对应的ASCII码减去字符 '0' 对应的ASCII码。在ASCII码中,字符 '0' 到字符 '9' 是连续存放的,它们的ASCII码是依次递增的。因此,通过将字符 '2' 的ASCII码减去字符 '0' 的ASCII码,得到的结果就是字符 '2' 对应的整数值。
在ASCII码中,'0'的ASCII码是48,'1'是49,依次递增,所以当 '2' 的ASCII码(50)减去 '0' 的ASCII码(48),得到的结果是2,这样变量 k 就存储了整数值 2!
这个技巧适用于将字符形式的数字转换为整数,但前提是字符确实是 '0' 到 '9' 范围内的 数字 字符。这样的转换在编程中经常用到,尤其是在处理用户输入的字符时。