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