【发布时间】:2020-01-06 13:53:07
【问题描述】:
我想知道我的计算机如何在完全相同的一组 0 和 1 之间产生差异。我真的不知道应该是什么问题,但我想知道例如当我在 C 中时:
int main(){
__uint8_t a = 97;
printf(" Here is a char : %c\n Here is a number : %d\n", a, a);
return 0;
}
它怎么知道他什么时候应该打印 'a' 或 97。我知道这是由于 %c 和 %d,但到底发生了什么?
谢谢大家!
【问题讨论】:
-
printf函数的实现决定了如何解释格式字符串和参数。如果您想了解更多详细信息,可以查找printf函数的源代码。 -
所以这是我的问题:printf 如何知道如何解释字符串?
-
某处可能有某种转换表将整数
97转换为字符a。但它不会发生在printf函数中,而是在将值打印到终端时发生。 -
就像我说的,如果你想了解它是如何做到的,请查看
printf源代码。 -
我想更进一步,就二进制代码而言,cpu 确实知道它是一个字符还是一个数字?有一些元数据吗?
标签: c binary cpu computer-science