%u和%d的不同输出有关问题
%u和%d的不同输出问题
[code=C/C++][/code]
#include<stdio.h>
main()
{
int x=sizeof(unsigned);
int y=sizeof(unsigned char);
printf("%u\t%u\n",x,y);
printf("%u\n",sizeof(unsigned)-1-sizeof(unsigned char)-2);
printf("%d\n",sizeof(unsigned)-1-sizeof(unsigned char)-2);
getch();
}
输出
2 1
65534
-2
问题是为什么会输出65534呢?
------解决方案--------------------
[code=C/C++][/code]
#include<stdio.h>
main()
{
int x=sizeof(unsigned);
int y=sizeof(unsigned char);
printf("%u\t%u\n",x,y);
printf("%u\n",sizeof(unsigned)-1-sizeof(unsigned char)-2);
printf("%d\n",sizeof(unsigned)-1-sizeof(unsigned char)-2);
getch();
}
输出
2 1
65534
-2
问题是为什么会输出65534呢?
------解决方案--------------------
- C/C++ code
//sizeof(unsigned)-1-sizeof(unsigned char)-2 //2-1-1-2 = -2, 也就是0xFE unsigned int d = -2; //0xFF FF FF FE,因为无符号,所以是65534 printf("%u", d);
------解决方案--------------------