Datový typ
Datový typ
Krásný den přeji,
prosím o radu, jak je možné, když zdám datový typ ... long a = 20 * 3600 , dostanu na zpět hodnotu 6464 . Co mi uniká ? 72 000 přece nemůže přetéct u hodnoty long, nebo se pletu ? Potřebuji uložit hodnotu celého dne v sekundách. Jen dodám pokud napíšu a = 72000 tak mi Serial.println vypíše 72 000. tak si říkám, že to mé Arduino neumí počítat . Blbost. Co dělám špatně? Prosím pomoc!!!
prosím o radu, jak je možné, když zdám datový typ ... long a = 20 * 3600 , dostanu na zpět hodnotu 6464 . Co mi uniká ? 72 000 přece nemůže přetéct u hodnoty long, nebo se pletu ? Potřebuji uložit hodnotu celého dne v sekundách. Jen dodám pokud napíšu a = 72000 tak mi Serial.println vypíše 72 000. tak si říkám, že to mé Arduino neumí počítat . Blbost. Co dělám špatně? Prosím pomoc!!!
Re: Datový typ
Vypadá to, že arduino ide použije 32bit u long a, ale u čísel použije 16bit. Asi nějaké nastavení v arduino ide, nebo to, že ty čísla nemají definováno long ale int
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Datový typ
long a = 20L * 3600L;
u celých čísel a long mi myslím pomáhá toto
u celých čísel a long mi myslím pomáhá toto
Naposledy upravil(a) pavel1tu dne 07 dub 2020, 18:58, celkem upraveno 1 x.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Datový typ
Aby to bral jako long,
setkal jsem se s tím u DUE, kde mi to blblo,
testovali jsme to i na kroužku na UNO funguje to.
Neumím moc anglicky, ale vycházel jsem z tohoto :
If doing math with integers, at least one of the numbers must be followed by an L, forcing it to be a long. See the Integer Constants page for details.
long speedOfLight = 186000L; // see the Integer Constants page for explanation of the 'L'
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Datový typ
Jak se vyhodnotí ?
1. Nejprve se uvažuje, že nějaký long = nějaký int * nějaký int
2. Int krát int je zase int
3. V závěru se int přetypuje na long (ale došlo u něj k "ořezání")
Jak se vyhodnotí?
1. Nejprve se uvažuje, že nějaký long = číslo přetypované na long * číslo přetypované na long
2. Long krát long je zase long
3. V závěru je výsledek dle očekávání
Další možností by mohlo být např.
Kód: Vybrat vše
long a = 20 * 3600
1. Nejprve se uvažuje, že nějaký long = nějaký int * nějaký int
2. Int krát int je zase int
3. V závěru se int přetypuje na long (ale došlo u něj k "ořezání")
Jak se vyhodnotí
Kód: Vybrat vše
long a = 20L * 3600L
1. Nejprve se uvažuje, že nějaký long = číslo přetypované na long * číslo přetypované na long
2. Long krát long je zase long
3. V závěru je výsledek dle očekávání
Další možností by mohlo být např.
Kód: Vybrat vše
long a = (long) 20 * 3600
Re: Datový typ
Moc děkuji, už mi to jede ..já blbec dal long a = int 20 *3600 a divím se že to přeteče . Ještě jednou moc děkuji
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Datový typ
Nejsi blbec,
příklady typu long a = 20 * 3600 jsou na mnoha webech - samozřejmě blbě.
Další co je na platformě Arduino opravdu opruz - jsou knihovny.
Musíš se držet těch originálních, jak já říkám, každý kdo má v riti díru si udělá svůj fork (upravenou kopii),
tu většinou nějak ořezal nebo upravil kvůli něčemu.
Bohužel už se většinou nepíše seznam těchto úprav, natož aby implementoval změny a opravy co časem proběhly v původní knihovně.
Nebo tam po čase provede takové změny, opět bez jakékoliv dokumentace, že ti přestanou chodit původní projekty když se ti knihovna updatuje.
Takže je dobré si k projektům schovávat i zálohy knihoven - pro jistotu.
I dost příkladů na netu je nefunkčních, někdy chyba v kodu, někdy chyba ve schematu.
Lidi prostě něco postaví na stole, zveřejní, ale tím že to dlouhodobě neprovozují, uniknou jim drobné i zásadní chyby.
A o to je to zábavnější
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů