【发布时间】:2010-12-16 09:29:39
【问题描述】:
为什么这段代码的输出是 fffffffa 而不是 0000000a
字符 c=0Xaa; int b=(int)c; b=b>>4; printf("%x",b);我认为 char c=OXaa 将是 aa,当它被类型转换为 int 时,它会更改为 000000aa。
谁能告诉我当 char 被强制转换为整数时发生了什么..
【问题讨论】:
-
已经将大于 127 的值分配给
char可能会导致未定义的行为。不要那样做,但总是将'a'类型常量分配给普通的char。要在其中有一个十六进制值,您可以使用'\xaa',就像您的示例一样,但是当您超出界限时,编译器更有可能告诉您。
标签: c