2- , 2 ^ n, .. , . , (long)0xFFFFFFFFu -1
, , 1 /. , 32 . signed , , , , . LONG_MAX - LONG_MIN LONG_MIN - LONG_MAX , long, long s
,
return static_cast<long long>(time4) - static_cast<long long>(currTimeLo);
int
if (time4 > rcurrTimeLo)
{
timediff = time4 - rcurrTimeLo;
OV = 0;
}
else
{
timediff = rcurrTimeLo - time4;
OV = 1;
}
, , 32- , 32- 64- , 8- MCU, ATmega
If you can guarantee that two operands are no more than LONG_MAX, far apart, simply static_castto long will work
return static_cast<long>(time4) - static_cast<long>(currTimeLo);
source
share