整数和char的总和


int i = 12;
char myChar = '4';
WriteLine(i + myChar);

//64因为ASCII '4' = 52

WriteLine(i  + myChar - '0');

//将是16,这是我想要的。为什么我应该使用-'0'

将数字字符'0'转换为'9',将数字0转换为9,减去'0'

这总是有效的,因为C定义了字符'0''9'是顺序编码的。

//             v----------v  Arithmetic value of digit character.
WriteLine(i  + myChar - '0');

即使字符不是用ASCII编码也可以。

int i = 12;
char myChar = '4';
WriteLine(i + (int)myChar);

Ascii值'0'48开始,如您所知,'4'52。如果用4减去0就得到整数4的值,因为在ASCII表中,值增加+1的频率。

价值观:

'0' = 48
'1' = 49        {'1' - '0' == 49-48 == 1}
'2' = 50        {'2' - '0' == 50-48 == 2}
...
...

每次你减去'0'等于48你就会得到字符串number的真实值

相关内容

最新更新