You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中字符型数字转整数:为何用字符减'0'实现?

为什么数字字符减去'0'能得到对应整数?

先看你贴的这段代码:

char character = '7';
int integerChar = character - '0';

它的核心逻辑其实很简单,关键在于两点:

  • 字符的本质是编码值:char类型存储的是字符对应的编码数值(比如常见的ASCII编码里,'0'对应48,'7'对应55)。当字符参与算术运算时,会自动转换成对应的整数编码值来计算。
  • C标准的强制规定:C语言标准明确要求,数字字符'0'到'9'的编码值必须是连续递增的——'1'比'0'大1,'2'比'0'大2……直到'9'比'0'大9。

所以用任意一个数字字符减去'0',得到的结果就是该字符对应的整数。比如'7' - '0',就是55 - 48 = 7,正好得到数字7的整数形式。

而且这个写法是可移植的,不管编译器用哪种字符编码(不一定是ASCII),只要符合C标准,这个转换逻辑都能正常工作。

内容的提问来源于stack exchange,提问作者user13450139

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:15:01