求两变量在规定值范围循环增长的距离值

假设变量 ticks_now、tick_old<=0x00ffffff,且在0-0x00ffffff循环,求tick_now、tick_old过了多少间隔

static uint32_t ticks_diff_get(uint32_t ticks_now, uint32_t ticks_old)

{
    return ((ticks_now - ticks_old)  & 0x00ffffff);

}

1、当ticks_now>=tick_old时,函数返回tick_now-tick_old

2、当ticks_now<=tick_old时,即ticks_now从tick_old增到0x00ffffff到0再到tick_now,例如:

ticks_now = 1,ticks_old = 0x00ffffff,负数在计算机中保存为补码,故-0x00ffffff = 0xff000001,原式= (1+0xff000001)&0x00ffffff = 0x02;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值