以下程序的输出结果为

[复制链接]
查看11 | 回复2 | 2010-7-15 20:12:42 | 显示全部楼层 |阅读模式
main()
{ short i;
i=-4;
printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);
}
第一个dec=-4可以理解。为什么oct=177774?hex=fffc?unsigned=65532?

回复

使用道具 举报

千问 | 2010-7-15 20:12:42 | 显示全部楼层
你主要不明白无符号整型和有符号整型的区别归根结底printf("")输出的都是内存中存储的值,只是有符号的第一位存储符号位,而无符号整型则把它当做了数据的一部分输出了,-4在内存中的存储为1 111 111 111 111 100
反码为1 000 000 000 000 100知道补码的知识吧,1 7
7
7
7
4二进制转化为十进制。 2^16-1-3=65532;
回复

使用道具 举报

千问 | 2010-7-15 20:12:42 | 显示全部楼层
if(a>10 && ok1)
|
a=10,所以 a>10 不成立,BTW,这个地方 if else 之间 什么都没有,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行