Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 2 paź 2022, o 07:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 15 wrz 2022, o 09:33 
Offline
Nowy

Dołączył(a): 27 wrz 2021
Posty: 15
Pomógł: 0

Cześć,

po skompilowaniu programu dostaje taki błąd:
integer overflow in expression

Rozumiem co to jest, ale nie umiem temu zaradzić. Więc jakby ktoś z Was mógł podpowiedzieć co trzeba zrobić i dlaczego tak a nie inaczej.
Błąd dotyczy zmiennej voltage.
Kod poniżej:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2022, o 10:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 26864
Lokalizacja: Szczecin
Pomógł: 1027

poczytaj sobie o domyślnej promocji do int

https://atnel.pl/domyslna-promocja-do-typu-int.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2022, o 13:26 
Offline
Nowy

Dołączył(a): 27 wrz 2021
Posty: 15
Pomógł: 0

Panie Mirku dziękuję za podpowiedź.
Ale... Niby wszystko jest już zrozumiałe, a i tak coś nie działa.Pewnie mam jakiegoś babola, którego nie widzę. Robiłem różne próby i nic :/

Mianowicie przy takim wyrażeniu:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


gdzie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


na terminalu otrzymuję wartość -482. :?:

Robiłem na różne sposoby, te podane w artykule, dodając nawiasy między poszczególne mnożenia i nic dalej -482.
Co może być nie tak ?? Wrzucam mojego maina, gdzie za komentowałem już większość kodu, żeby sprawdzić czy czasem coś nie psuje mi tych obliczeń.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2022, o 15:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 26864
Lokalizacja: Szczecin
Pomógł: 1027

wklej taki sam prosty kod testowy po poprawkach a nie coś takiego - kobyłę z pokomentowanymi liniami i nie wiadomo w ogóle o co chodzi

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2022, o 16:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1075
Lokalizacja: Kraków
Pomógł: 89

Jeżeli liczbę masz typu uint16_t, a wyświetlasz przez uart_INT, to wyświetli Ci się wynik jako int



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2022, o 18:38 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 09 paź 2020
Posty: 13
Pomógł: 3

kolego, używasz zmiennej wynik typu uint16_t która ma zakres od 0 do 65635.

to co przypisujesz do zmiennej wynik tutaj:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zapisuje do zmiennej wynik liczbę 57134. co daje binarnie 0b1101111100101110.

Dlczego pokazuje Ci wartość binarną?

A ile to binarnie będzie wynosiło jeżeli przyjmiemy że to liczba typu int16_t, czyli ze znakiem (popatrz, że masz jedynke na ostatniej pozycji w liczbie binarnej)?

a no będzie to -8402

tu masz przykład:

https://onlinegdb.com/ZKHcuqMiQ

zatem jak używasz funkcji która przyjmuje inta a nie uinta to nie dziw się że masz taki wynik :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO