为什么“%d”不仅可以打印出十进制的ASCII码?

Why does "%d" can print out ASCII code not only decimal?

听说 '%d' 打印十进制,但如果我导入 printf("%d",'a'),它会打印出 'a' 的 ASCII 码。我不明白为什么只能打印十进制的 %d 也打印 ASCII 码。 ASCII码是小数吗?

计算机对“小数”一无所知。计算机知道 数字 。通常在计算机中一切都是数字。字符、字符串——甚至机器代码指令。

人类需要以易于理解的形式显示数字。我们习惯于使用您称为“小数”的 10 进制数。

字符也是数字。我们(人类)发明了编码来知道什么数字代表特定字符。非常流行的是 ASCII 系统。当你 printf("%d\n", 'A'); 然后你简单地打印代表字符 'A' 的数字使用基数 10 表示。