猿问

请问为什么输出的是a1=ffff,a2=65535,a3=-1?

#include<stdio.h>
short int a=-1;
int main()
{
printf("a1=%hx,a2=&hu,a3=%dh\n",a,a,a);
return 0;
}

斯蒂芬大帝
浏览 239回答 1
1回答

慕村225694

为什么不是呢?你的是short型,-1十六进制保存就是FFFF,而FFFF转为十进制就是65535。你打印的第一个是按十六进制打,所以为FFFF,第二个是按无符号型打,所以为FFFF的十进制值65535,第三个是按整型打就是-1了。这个可以看下基本原理
随时随地看视频慕课网APP
我要回答