přetečení int v C arduino
Petr Zapadlo
zapik na email.cz
Pátek Červenec 18 08:02:56 CEST 2014
Bude,
to jsem pochopil, proto jsem taky změnil délku datového typu.
tady mě ram netrápí, ale chci chápat co se děje do budoucna.
Zakopaný pes je zřejmně zde:
cas1=cas1-den*86400; //cas1=36000
hodina=int(cas1/3600); //hodina=10, cas1=65535
cas1=cas1-hodina*3600;
v které přesně operaci to přeteče a proč?
cas1 unsigned log, takže rezerva je tam dost velká.
Zápis:
int(cas1/3600)
chápu tak, že výpočet se provede v ulong a převede se na int.
Je to tak?
Díky
Petr
Dne 18.7.2014 07:56, Robert Baranka napsal(a):
> nebude to "neco" mat suvislost s 2^15, teda -32768 az 32767?
> :-D
> Robo
>
> Dňa 18. 7. 2014 7:37 Petr Simek wrote / napísal(a):
>>
>> Int je signed tedy +-32000 a neco. Co zkusit uint ?
>>
>>> Petr
>>
>> *------------------------------------------------------------------------*
>>
>> | Petr Simek APS
>> JU |
>> | psimek na jcu.cz |
>> *------------------------------------------------------------------------*
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list