%u和%d的不同输出问题

「已注销」 2012-10-26 08:28:27

#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呢?
...全文
199 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2012-10-26
  • 打赏
  • 举报
回复
谢谢两位
「已注销」 2012-10-26
  • 打赏
  • 举报
回复
啊,我2了,懂了~
manxiSafe 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
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);
[/Quote]

有符号 和 无符号 的数 就是 一个 有没有符号位的 问题
mujiok2003 2012-10-26
  • 打赏
  • 举报
回复

//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);

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧