51单片机C程序答疑!求各位大哥关照!

2019-07-15 16:38发布

本帖最后由 小代码 于 2015-7-11 20:51 编辑

if(s==0xff)和if(s==0)的区别是什么?
在下面的程序中前者能返回m=0,s=0,  而后者做不到!
TH0=(65536-2000)/256;                  //重新赋值 2ms
TL0=(65536-2000)%256;

  if(Fg==1)
{
n++;
if(n==500)
{
   n=0;
   if((m!=0)||s)

     s--;
   if(s==0xff)
         {
           s=59;
           if(m>0)
           {
             m--;
           }
         }

}
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
yifeng2030
1楼-- · 2019-07-15 20:46
 精彩回答 2  元偷偷看……
空竹青青
2楼-- · 2019-07-15 22:58
程序看不大懂,但0xff是十六进制,转化成二进制是1111 1111,和0数值不等。
2013孤独的雪
3楼-- · 2019-07-16 01:15
s的初始值是多少,考虑下,
小代码
4楼-- · 2019-07-16 05:09
空竹青青 发表于 2015-7-12 10:20
程序看不大懂,但0xff是十六进制,转化成二进制是1111 1111,和0数值不等。

这是一个定时报警的程序!当时间的减至 00—00时启动报警器
void Timer0_isr(void) interrupt 1
{
TH0=(65536-2000)/256;                  //重新赋值 2ms
TL0=(65536-2000)%256;

Display(0,8);
if(Fg==1)
{
n++;
if(n==500)
{
   n=0;
   if((m!=0)||s)
   
     s--;
   if(s==0xff)
         {
           s=59;
           if(m>0)
           {
             m--;
           }
         }
   
}
}
}
其中m=99;s=59;  关键就是if(s==0xff)   这个判断语句    是怎样实现其功能的呢?  s是整形变量(int)
yifeng2030
5楼-- · 2019-07-16 08:40
理解不对,
   if((m!=0)||s)
   
     s--;
这个限制了S=0以后再减,看不懂了。。
小代码
6楼-- · 2019-07-16 13:43
 精彩回答 2  元偷偷看……

一周热门 更多>