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

while (--k)什么时候结束?

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2024-04-19 08:18:54

34

主题

85

回帖

670

积分

高级会员

积分
670
发表于 2023-11-21 19:23:14 | 显示全部楼层 |阅读模式
哪位高手知道:
int k = -1;

while (--k);
这个循环什么时候结束?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:529
  • 最近打卡:2025-05-12 05:54:56
已绑定手机

48

主题

1763

回帖

2778

积分

金牌会员

积分
2778
发表于 2023-11-21 20:47:26 | 显示全部楼层
直接结束吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2024-04-19 08:18:54

34

主题

85

回帖

670

积分

高级会员

积分
670
发表于 2023-11-23 22:35:37 | 显示全部楼层
suncat0504 说的非常正确,看看 stc-isp-v6.92G.exe 给出的软件延时函数,犯了非常低级的错误,到了这个版本还没有改正,大家看看这个函数能延时 20ms 吗?

void Delay20ms(void)        //@11.0592MHz
{
        unsigned char data i, j;

        i = 216;
        j = 37;
        do
        {
                while (--j);
        } while (--i);
}

点评

int 型的 -1 在内存 以补码形式存储 是0xffff 当它减到0 循环就结束了 --------------------------------------------------------------- ISP 的延时函数没问题。 应该是你的理解存在有误的地方  详情 回复 发表于 2023-11-24 08:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-24 08:33:02 | 显示全部楼层
liuyan*** 发表于 2023-11-23 22:35
suncat0504 说的非常正确,看看 stc-isp-v6.92G.exe 给出的软件延时函数,犯了非常低级的错误,到了这个版 ...

int 型的  -1 在内存  以补码形式存储   是0xffff
当它减到0  循环就结束了
---------------------------------------------------------------
ISP 的延时函数没问题。
应该是你的理解存在有误的地方





回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:515
  • 最近打卡:2025-05-12 09:31:29

10

主题

196

回帖

655

积分

高级会员

积分
655
发表于 2023-11-24 09:15:02 | 显示全部楼层
学习中
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2024-04-19 08:18:54

34

主题

85

回帖

670

积分

高级会员

积分
670
发表于 2023-11-24 20:19:09 | 显示全部楼层
明白了,也就是说,第一次让 while(--j)循环37次,以后让 while(--j)循环255次。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:274
  • 最近打卡:2025-05-12 08:12:22

13

主题

109

回帖

370

积分

中级会员

积分
370
发表于 2023-12-3 09:53:47 来自手机 | 显示全部楼层
数据为正执行,为负退出
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:398
  • 最近打卡:2025-05-12 07:45:01

46

主题

383

回帖

1610

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1610
发表于 2023-12-3 12:20:06 | 显示全部楼层
根本一次循环都进不去,即使int k=1都进不去循环
处事要代人所想,读书需切己用功
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:398
  • 最近打卡:2025-05-12 07:45:01

46

主题

383

回帖

1610

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1610
发表于 2023-12-3 12:23:58 | 显示全部楼层
liuyan*** 发表于 2023-11-23 22:35
suncat0504 说的非常正确,看看 stc-isp-v6.92G.exe 给出的软件延时函数,犯了非常低级的错误,到了这个版 ...

大约2.9ms吧
处事要代人所想,读书需切己用功
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-12 08:13:10
已绑定手机

27

主题

693

回帖

2024

积分

金牌会员

打工人

积分
2024
发表于 2024-2-23 09:46:52 | 显示全部楼层
gentl*** 发表于 2023-11-24 08:33
int 型的  -1 在内存  以补码形式存储   是0xffff
当它减到0  循环就结束了
--------------------------- ...

打工人
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-12 17:32 , Processed in 0.148276 second(s), 120 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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