求教一个C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:04:35
main()
{unsigned int x=oxffff;/*X初值为16进制数*/
printf("%u\n",x);}
答案有 -1,65535,32767,0xffff 请教一下选哪个问什么
问题补充:这是C语言笔试题....考试时没有机子..

%u 是以十进制的形式输出无符号整数,可知这个结果肯定是一个整数
那么到底是 65535还是32767呢?
因为0xffff=65535,所以结果是65535

%u是无符号整数,先排除-1
接下来就是进制换算问题了
这个语句输出十进制数
f在十六进制中表示15
所以:
0xffff = 15*16^3 + 15*16^2 + 15*16 + 15
= 65535

无符号整数的数值范围仅在2位16进制数里。
以上答案我觉得都不像。