找回密码
 立即注册
查看: 1848|回复: 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
  • 打卡总天数:684
  • 最近打卡:2025-10-16 08:01:01
已绑定手机

54

主题

1917

回帖

4075

积分

论坛元老

积分
4075
发表于 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
  • 打卡总天数:227
  • 最近打卡:2025-10-04 06:38:13

35

主题

733

回帖

3071

积分

荣誉版主

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

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





回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:669
  • 最近打卡:2025-10-16 08:09:05

13

主题

208

回帖

1046

积分

金牌会员

积分
1046
发表于 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
  • 打卡总天数:283
  • 最近打卡:2025-10-15 21:08:06

13

主题

109

回帖

408

积分

中级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:546
  • 最近打卡:2025-10-16 07:51:13

50

主题

396

回帖

2096

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:546
  • 最近打卡:2025-10-16 07:51:13

50

主题

396

回帖

2096

积分

金牌会员

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:632
  • 最近打卡:2025-10-16 07:14:01
已绑定手机

28

主题

717

回帖

911

积分

高级会员

打工人

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

打工人
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-17 01:20 , Processed in 0.142968 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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