why is 21 + 31 equal to 5?

fishmen26 2007-07-02 04:44:06
printf("why is 21 + 31 equal to %d?\n",21 + 31);

在一台 int 类型长度为4字节的机器上,下面是它的答应结果:

why is 21 + 31 equal 5?

请问为什么?基本原理是什么?


这是 a book on c ,第3章习题7

我在TUBBOC 上 INT 2字节 运行结果 21+31=52

将编译器换成 VC 运行 INT 4字节 运行结果仍然是 21+31=52

搞不懂了,上来问问
...全文
291 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgg___ 2007-07-06
  • 打赏
  • 举报
回复
不光少了个2,前面还少了个to。
debug1984 2007-07-05
  • 打赏
  • 举报
回复
不管2字节还是4字节,52是装得下的.
如果那章将的不是long和int等而是讲printf的话,那就是印刷错误.
如果是技巧性的,就可以多研究下是l 还是 1
fire_woods 2007-07-03
  • 打赏
  • 举报
回复
1和l很像
fishmen26 2007-07-03
  • 打赏
  • 举报
回复
能不能说清楚点,谢谢
adrian8181 2007-07-02
  • 打赏
  • 举报
回复
是长整形2加长整形3
fishmen26 2007-07-02
  • 打赏
  • 举报
回复
那样 2字节 和 4字节之间有区别吗?
songzhenqiu 2007-07-02
  • 打赏
  • 举报
回复
我猜那属本意是2“l”+3“l”
fishmen26 2007-07-02
  • 打赏
  • 举报
回复
书是学校借的,不应该是盗版哦

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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