【发布时间】:2020-08-09 00:35:05
【问题描述】:
刚开始学C,有点迷茫。
我有一些问题:
- 如果我有以下代码:
signed char x = 56;
// In the RAM, I will see 00111000 yes/no?
signed char z = -56;
// In the RAM, I will see 11001000 yes/no?
unsigned char y = 200;
// In the RAM, I will see 11001000 yes/no?
- 我有以下代码:
if (z<0){
printf("0 is bigger then z ");
}
编译后,汇编指令如何知道z是-56而不是200?(有符号和无符号的特殊ASM指令?)。
正如我在问题 1 中提到的,z 和 y 的值是 11001000,并且没有任何指示知道它是有符号还是无符号。
抱歉,如果我没有找到正确的方式来问我的问题,希望你能理解我 谢谢
【问题讨论】:
-
(1) 是,(2) 编译器知道变量的类型,并会生成汇编语言来处理它们。
-
我建议您选择最能回答您的问题的已发布答案,如果您觉得满意,请“接受”(点击接受检查)。
标签: c assembly char unsigned signed