【发布时间】:2013-07-15 17:15:55
【问题描述】:
#include <stdio.h>
int main(int argc, char const *argv[])
{
char a = 0xAA;
int b;
b = (int)a;
b = b >> 4;
printf("%x\n", b);
return 0;
}
这里的输出是fffffffa。谁能给我解释一下这个输出是怎么得到的?
【问题讨论】:
-
可能是签名字符,这可能对
unsigned char a=0xAA;有帮助 -
请注意,没有“十六进制数”之类的东西。相反,您可能拥有“数字的十六进制表示”,就像您可能拥有相同数字的十进制或二进制表示一样。一个数字就是一个数字——它没有底。
-
@HotLicks Heh... 当然,您可以用“没有数字这样的东西”来跟进 - “数字”只是人类提出的有助于逻辑思考的心理结构关于东西,如果确实有“逻辑”之类的东西......;-P
-
@twalberg - 我不确定我是否明白其中的逻辑。 ;-P
标签: c