当前位置: 代码迷 >> C语言 >> [求助]关于益出问题
  详细解决方案

[求助]关于益出问题

热度:81   发布时间:2006-12-26 20:22:53.0
[求助]关于益出问题

问题3:
main()
{char x=0xfff;printf("%d\n",x--);}
A.-32767 B.FFFE C.-1 D.-32768

完全不知道如何下手
是跟益出有关吗?

搜索更多相关的解决方案: main  FFFE  char  printf  

----------------解决方案--------------------------------------------------------
以下是引用frog555在2006-12-26 20:22:53的发言:

问题3:
main()
{char x=0xfff;printf("%d\n",x--);}
A.-32767 B.FFFE C.-1 D.-32768

完全不知道如何下手
是跟益出有关吗?

是字符型吗???


----------------解决方案--------------------------------------------------------
位段截取.
----------------解决方案--------------------------------------------------------
这个应该跟益处没有什么关系!
你把十六进制数变成二进制数,最高位为符号位
计算就是了哦
----------------解决方案--------------------------------------------------------
输出不是应该是65535吗?
怎么是-1呢```
帮帮忙谢谢啦
----------------解决方案--------------------------------------------------------
求解中~~~
----------------解决方案--------------------------------------------------------

关注ing....


----------------解决方案--------------------------------------------------------
我觉得和溢出有关,一个char类型的占一个字节,怎么能存这么大的一个数呢?三楼的版主说的“位段截取”不明白是怎么回事啊?这道题要怎么截取呢?我觉得数字溢出之后也会按照一定的规律变化,数字是从零到127之后是-128逐渐增加,也就是说,只要这个十六进制的数字是除以256余255的数都是-1,第255个数就是-1,65535%256也是255,所以也是-1,这是我在跟踪的时候看的。不一定对哦,自己在好好想想吧!
----------------解决方案--------------------------------------------------------
你还要问别人吗。上面已经有人给出正确的答案。
本质上看这道好似是溢出但实际上并不是这样的,它只是考查各种数据在内存中的存放方式,和一般的赋值方法之间的转换。
----------------解决方案--------------------------------------------------------
  相关解决方案