c++ - 为什么在 C 中减去 '0' 会得到 char 代表的数字?

标签 c++ c digits

有人可以解释一下为什么会这样吗?

char c = '9';
int x = (int)(c - '0');

为什么从 char 的 ascii 代码中减去“0”会得到该 char 所代表的数字?

最佳答案

因为字符都是用数字表示的,而“0”是第一个。

在下表中您可以看到:

'0' => 48
'1' => 49


'9' => 57.

结果: ('9' - '0') = (57 − 48) = 9

enter image description here 来源:http://www.asciitable.com

关于c++ - 为什么在 C 中减去 '0' 会得到 char 代表的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47459270/

相关文章:

c++ - #include <Windows.h> 是不好的做法吗?

c - Valgrind 内存泄漏可达

c++ - boost 时间戳 UDP 数据包

c++ - 我如何告诉一个 wstring 我正在喂它的字符串已经是一个 wstring?

c - K&R 2-3 htoi 段错误

多次赋值后C指针丢失

python - 如何操作整数/字符串中的数字?

Java boolean 算法检查位数是否为偶数

sed 提取数字

c++ - WxWidget ID 问题