鱼C论坛

 找回密码
 立即注册
查看: 2370|回复: 10

[已解决]这个题是死循环吧

[复制链接]
发表于 2016-3-6 20:42:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

main()
{
        int a = -7;
        while( a-- );
                ;
        printf("%d", a);
}
最佳答案
2016-3-7 01:03:50
a值是-7 每次递减1
拿32位int型系统举例
当a变成   -2147483648的时候
再减1就变成了正的2147483647(为什么这么变就要补习二进制知识了)
然后还是递减1,当a变成0的时候条件不成立了
但是while条件里面的a还 - - 了,所以答案应该是-1
QQ截图20160306204029.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-7 01:03:50 | 显示全部楼层    本楼为最佳答案   
a值是-7 每次递减1
拿32位int型系统举例
当a变成   -2147483648的时候
再减1就变成了正的2147483647(为什么这么变就要补习二进制知识了)
然后还是递减1,当a变成0的时候条件不成立了
但是while条件里面的a还 - - 了,所以答案应该是-1

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2016-3-6 21:24:14 | 显示全部楼层
不是死循环,需要一点时间,耐心等等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-6 21:29:31 | 显示全部楼层
人造人 发表于 2016-3-6 21:24
不是死循环,需要一点时间,耐心等等

怎么解释?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-7 00:48:50 | 显示全部楼层
5:            int a = -7;
0040D748   mov         dword ptr [ebp-4],0FFFFFFF9h
6:            while( a-- );
0040D74F   mov         eax,dword ptr [ebp-4]
0040D752   mov         ecx,dword ptr [ebp-4]
0040D755   sub         ecx,1
0040D758   mov         dword ptr [ebp-4],ecx
0040D75B   test        eax,eax
0040D75D   je          main+31h (0040d761)
0040D75F   jmp         main+1Fh (0040d74f)
7:                    ;
8:            printf("%d", a);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-7 08:15:10 | 显示全部楼层
machimilk 发表于 2016-3-7 01:03
a值是-7 每次递减1
拿32位int型系统举例
当a变成   -2147483648的时候

多谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-7 08:17:26 | 显示全部楼层
9528 发表于 2016-3-7 00:48
5:            int a = -7;
0040D748   mov         dword ptr [ebp-4],0FFFFFFF9h
6:            while( ...

虽然看不懂,但还是谢谢你了!!!汇编还没学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-7 18:07:43 | 显示全部楼层
楼上正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-12 19:02:20 | 显示全部楼层
5楼正解 补码知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-22 11:36:28 | 显示全部楼层
学习了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-24 22:55:21 | 显示全部楼层
为什么5楼没了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 02:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表