hak*_*ata 2 c ascii expression char atoi
我一直在阅读"C程序设计语言"一书中学习C,我偶然发现了算术s[i] - '0' ,他们说它给出了存储在s [i]中的字符的数值.我不太明白它,怎么能通过减法给出价值?注意这在atoi函数中使用,该函数将一串数字转换为其数字等效项.谢谢
s[i] - '0'
Ant*_*t's 8
可能重复:见这里
很好地'0'代表48字符集.所以减去('0'像这样的任何其他字符值)'1','2'将给予相应的数量,所以'9'- '0'给你9.
'0'
48
'1'
'2'
'9'
9
请注意我们的差异是两个字符: '9'- '0',这两个都是char
char
oua*_*uah 7
'0'to 的字符值'9'保证为C中所有字符集的顺序值.
(C99,5.1.2p3)"在源和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值应大于前一个值的值."
这意味着例如 '1' == '0' + 1
'1' == '0' + 1
Jar*_*Par 7
在引擎盖下,a char由数值表示.数字0-9的字符以升序数值存储.如果我们使用0基本值,那么简单的减法可以将0-9 char转换为等效的int值
0
归档时间:
13 年,5 月 前
查看次数:
10396 次
最近记录: