找回密码
 立即注册
查看: 1567|回复: 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);
这个循环什么时候结束?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:634
  • 最近打卡:2025-08-25 08:38:39
已绑定手机

54

主题

1893

回帖

3576

积分

论坛元老

积分
3576
发表于 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
  • 打卡总天数:221
  • 最近打卡:2025-08-16 16:40:09

32

主题

727

回帖

2947

积分

荣誉版主

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

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





回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:618
  • 最近打卡:2025-08-24 11:31:48

13

主题

207

回帖

780

积分

高级会员

积分
780
发表于 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
  • 打卡总天数:281
  • 最近打卡:2025-08-18 12:34:35

13

主题

109

回帖

398

积分

中级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-08-25 07:46:39

47

主题

392

回帖

2061

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-08-25 07:46:39

47

主题

392

回帖

2061

积分

金牌会员

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:588
  • 最近打卡:2025-08-25 07:46:05
已绑定手机

28

主题

727

回帖

985

积分

高级会员

打工人

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

打工人
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-25 08:41 , Processed in 0.138208 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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