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



Teraz jest 26 cze 2017, o 23:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 34 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 8 kwi 2017, o 18:28 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Witam pisze właśnie kod w którym mam 2 wartości, pierwsza wartość to jakaś przypadkowa liczba, druga jest zanegowaniem wartości pierwszej.
Gdy wykonuje danego ifa to pojawia się zawsze error.

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

Lecz gdy dodam linijkę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
prezed ifem wszystko działa.

Dlaczego więc tylda w przypadku operacji porównania nie działa?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 18:39 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

to by znaczyło że zanegowany val2 jest różny od val1.
val1 jest identyczne z val2 przed ifem w pierwszym syntaksie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 18:44 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Daro69 napisał(a):
to by znaczyło że zanegowany val2 jest różny od val1.
val1 jest identyczne z val2 przed ifem w pierwszym syntaksie ?


Dlaczego to by znaczyło że zanegowany val2 jest różny od val1 przecież gdy neguje w osobnej linijce wszystko działa. I dla jasności gdy neguje w osobnej linijce to tą tyldę z ifa wyrzucam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 18:47 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8217
Pomógł: 314

czytając twojego ifa :

Jeśli val1 jest równe ~val2 to wyświetl OK ,
jeśli nie wyświetl error

i jak widzisz działa prawidłowo gdyż wartości są różne i warunek nie zostaje spełniony :)

co powoduje że np wartość 5 nie jest równa -5

jeśli zaś zanegujesz w osobnej linijce val2 to każesz wartość np 5 zanegować uzyskujesz -5 a w ifie
ponownie negujesz wiec masz 5 co powoduje że jeśli np val1 = 5 to val2 w tym momencie też przyjmuje wartość 5
i warunek zostaje spełniony

taki przykład obrazowy ...

_________________
....z każdym bitem serca
www wyłączono



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 18:56 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

SunRiver napisał(a):
w ifie
ponownie negujesz


Jak napisałem u góry nie neguje 2 razy bo w momencie gdy używam tyldy w osobnej linijce tylde z ifa wyrzucam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 19:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8217
Pomógł: 314

w tym wypadku pomyśl dlaczego warunek został spełniony
jaką wartość przyjął val2 :)

_________________
....z każdym bitem serca
www wyłączono



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 19:14 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

a..; dobra.. tu chodzi oto że przy tej samej wartości val1.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wynikiem jest "ok",
a w tym wypadku:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wynikiem jest"error" :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 19:21 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Daro69 dokładnie o to chodzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 19:22 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

czy val1 i val2 są tego samego typu ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 19:40 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Tak



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 20:09 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

A w jakim środowisku pisany program ?
Może optymalizacja załączona jakaś. ?
może pomoże przydomek volatile przed powołaną zmienną, choć to rozwiązanie nie profesjonalne chyba w tym wypadku. ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 20:18 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Pisze w Eclipse a co do optymalizacji to nigdy w cos takiego się nie bawiłem więc najprawdopodobniej jest wszystko domyślnie. Po dodaniu volatile nadal to samo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2017, o 23:06 
Offline
Użytkownik

Dołączył(a): 13 sty 2016
Posty: 86
Pomógł: 2

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

?

------------------------ [ Dodano po: 1 minucie ]

Bo w sumie sama tylda do czego miała by się odnosić>



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 07:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 195
Pomógł: 13

Błąd nie zależy od środowiska programowania, ale od logiki działania funkcji porównania "jeżeli" - if().
Czy prawdą jest, że np. 5 = -1*5 . Ten matematyczny zapis odpowiada Twojemu zapytaniu if(val2 == ~val2).
Warunek zawsze jest FALSE - nie wykona się kolejne po nim polecenie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 07:52 
Offline
Moderator
Avatar użytkownika

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

Wirnick napisał(a):
Błąd nie zależy od środowiska programowania, ale od logiki działania funkcji porównania "jeżeli" - if().
Czy prawdą jest, że np. 5 = -1*5 . Ten matematyczny zapis odpowiada Twojemu zapytaniu if(val2 == ~val2).
Warunek zawsze jest FALSE - nie wykona się kolejne po nim polecenie.


DOKŁADNIE - zresztą już wcześniej SunRiver o tym pisał

no jak można się spodziewać że warunek typu

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


kiedykolwiek będzie spełniony ? no jak ;) Nie ważne środowisko, nie ważny język programowania ... jak można się spodziewać że to będzie spełnione ? (to tak jakbyś w realnym świecie zapytał:

czy moja żona to nie jest moja żona?

prawda czy fałsz? No PEWNIE ŻE FAŁSZ ;) bo moja żona to moja żona!)

podobnie jak można się spodziewać, że z kolei taki zabieg
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


powoduje że warunek jest ZAWSZE SPEŁNIONY ... no jak można spodziewać się innego działania ?

_________________
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: 9 kwi 2017, o 08:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 195
Pomógł: 13

Jeszcze dopowiem - co to jest " ~ " ? Otóż jest to zaprzeczenie, negacja w mowie potocznej, a w matematyce i logice współczynnik ; -1 .
I tak - iloczyn ( int(-1 * a) ) jest liczbą ujemną, natomiast na nasze żądanie podlega zaokrągleniu ( uint8_t(-1* a) ) jest liczbą dodatnią o wartości 0.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 11:48 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

O kurka. :?
Teraz to i ja się zakręciłem z tą tyldą. :?
jeżeli to jest operator bitowy ~ , to myślałem że wiem chyba co robi.
Okazuje się że ma jeszcze inne działanie. :?
bo np.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

.................................................................
Wirnick napisał(a):
Błąd nie zależy od środowiska programowania, ale od logiki działania funkcji porównania "jeżeli" - if().
Czy prawdą jest, że np. 5 = -1*5 . Ten matematyczny zapis odpowiada Twojemu zapytaniu if(val2 == ~val2).
Warunek zawsze jest FALSE - nie wykona się kolejne po nim polecenie.

to jak to jest z tą tyldą w tym momencie i dlaczego tylda to " -1 * zmienna " :?
zawala mi się mój mały światek programowania.
O CZYM NIE WIEM ? :roll:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 12:13 
Offline
Moderator
Avatar użytkownika

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

Daro69 napisał(a):
e i dlaczego tylda to " -1 * zmienna "

Ale wcale nie mnoży "-1 * zmienna"

toż kolega wyżej użył przykładu .... zrozum to to samo co ja podałem wyżej w przykładzie w warunku z "czy moja żona to nie moja żona?"

------------------------ [ Dodano po: 4 minutach ]

Wirnick napisał(a):
Jeszcze dopowiem - co to jest " ~ " ? Otóż jest to zaprzeczenie, negacja w mowie potocznej, a w matematyce i logice współczynnik ; -1 .
I tak - iloczyn ( int(-1 * a) ) jest liczbą ujemną, natomiast na nasze żądanie podlega zaokrągleniu ( uint8_t(-1* a) ) jest liczbą dodatnią o wartości 0.

No nie - tu to kolega "troszkę" popłynął ;)

tylda to nie jest żadna negacja w jakiejś tam mowie potocznej - sorki ale to nie ma sensu.

Jest proste i jasne jak drut wyjaśnienie i nie ma co z tym w ogóle dyskutować nawet ;) I to nie jest moje wyjaśnienie, żeby nie było że ja koło wymyślam

TYLDA - to operator negacji binarnej

i Quniec, żadne tam potoczne coś ;) ....

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


czy tu coś trzeba więcej wyjaśniać ?

_________________
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: 9 kwi 2017, o 13:01 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

OK. :)
sorka że się tak uparłem,
ale podobny temat z negacją w ifie pojawia się sukcesywnie na naszym forum i chciałem zrozumieć dlaczego nie zadziała sposób
którego właściwie nigdy nie używam. :)

Czyli nie można w sprawdzaniu warunku stosować negacji(jakby w locie). linijka 15.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
TO NIE ZADZIAŁAŁO. wyświetliło wynik falsz.
..............................................................................................
negacja musi być przypisana do jakiejś zmiennej wynikowej choćby tak: linijka 15.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
TERAZ POPRAWNIE wyswietliło prawda :D :D
Chyba teraz mogę sobie to utrwalić jako zasadę stosowania tyldy w ifie . :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 13:07 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Wirnick napisał(a):
Błąd nie zależy od środowiska programowania, ale od logiki działania funkcji porównania "jeżeli" - if().
Czy prawdą jest, że np. 5 = -1*5 . Ten matematyczny zapis odpowiada Twojemu zapytaniu if(val2 == ~val2).
Warunek zawsze jest FALSE - nie wykona się kolejne po nim polecenie.



Chyba za bardzo nie zrozumiałeś o co mi chodzi. Po pierwsze w ifie jest if(val1 == ~val2). a nie if(val2 == ~val2) tak jak Ty napisałes. Po drugie jak napisałem val2 jest negacją val1 więc na twoim przykładzie to będzie 5 = -1*(-5). Dlaczego to nie jest prawdą?

EDIT:
Chyba tylko Daro69 zrozumiał o co mi chodzi. Właśnie pytam od początku dlaczego ta jak on to nazwał "negacja w locie" nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 13:37 
Offline
Moderator
Avatar użytkownika

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

Kroniowiorka napisał(a):
Chyba tylko Daro69 zrozumiał o co mi chodzi.


Właśnie kłopot w tym że Daro69 tak samo nie rozumiał może do tej pory a może nadal jeszcze sprawia mu trudność jak tobie bo pisze wyżej:

Daro69 napisał(a):
Czyli nie można w sprawdzaniu warunku stosować negacji(jakby w locie). linijka 15.


A dlaczego niby nie można ? Kto tak powiedział że nie można ? ;) wręcz odwrotnie nie tylko można ale często się używa negacji w warunkach IF tylko że trzeba przemyśleć działanie programu

Obydwaj panowie widzę macie ten sam problem i jakoś nie możecie w dziwny sposób zaskoczyć .... o co chodzi

Ale tak to jest gdy ktoś poda ... żeby nie obrazić nikogo no ale NIELOGICZNY z założenia warunek czyli

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


pytam - jest w TYM warunku IF jakaś logika ? żeby w ogóle robić taki warunek w przypadku takiego kodu ? No zastanówcie się

PRZECIEŻ ZAWSZE wynikiem tego warunku będzie FAŁSZ - a wy się obydwaj dziwicie dlaczego ? i zastanawiacie się czy to kompilator czy środowisko czy coś tam jeszcze

------------------------ [ Dodano po: 11 minutach ]

może inny przykład obrazowy ;)

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


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



tu nawet nie chodzi o język programowania - tu chodzi o samą logikę zadawania warunków IF

negację bitową JAK NAJBARDZIEJ można wykorzystywać w warunkach - prosty przykład.

Wyobraźcie sobie, że otrzymujecie kody z pilota gdzie dostajecie w zmiennej

cmd1 - wartość odebranej komendy

natomiast w

cmd2 - zanegowaną już wartość komendy

takie zabezpieczenie stosowane jest w pilotach np Samsung, ramka jest przesyłana w postaci normalnej i zanegowanej

więc teraz jeśli chcę sprawdzić czy nie ma błędu transmisji to muszę to jakoś sprawdzić warunkiem czyli:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Czy teraz jaśniej ? .... Nie ma zaś KOMPLETNEGO SENSU robić takiego warunku na dwóch różnych zmiennych które zawierają tę samą wartość bo wtedy warunek IF traci sens kompletnie

_________________
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: 9 kwi 2017, o 13:54 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

mirekk36 napisał(a):
val1 = val2;
if( val1 == ~val2 ) ....  else ....


Napisałeś w kodzie że val1=val2 gdy ja napisałem już ze 2 razy że te dwie wartości NIE SĄ równe. val2 jest negacją val1 więc zamiast twojego zapisu powinno być.

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: 9 kwi 2017, o 14:05 
Offline
Moderator
Avatar użytkownika

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

Kroniowiorka napisał(a):
//ten if nie jest spełniony


jest jest spełniony tylko jak zwykle .... trzeba pamiętać o domyślnej promocji do INT

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

wtedy byś ten warunek napisał jak się należy, czyli

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


czyli ? ostatecznie ??? .... jawne rzutowanie do typu o który tobie chodzi - jeśli więc masz zmienne 8-bitowe to takie rzutowanie robimy bo domyślnie porównanie nastąpi na typach int


Autor postu otrzymał pochwałę

_________________
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: 9 kwi 2017, o 14:09 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

Panowie, mi już się głowa gotuje. :lol: :lol:
Dlaczego w tym przykładzie wyświetla się fałsz. ? :?
Przykład 1 z kilka postów wcześniej:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Poddaję się. :( lejcie, tylko nie po głowie. :? :roll:
.......................................................
jasny gwint.. :? :? :? znowu ta promocja. :lol: :lol: :lol:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 14:12 
Offline
Nowy

Dołączył(a): 19 kwi 2016
Posty: 21
Pomógł: 0

Dobra dzięki wielki nie miałem pojęcia że coś takiego istnieje, teraz działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 16:25 
Offline
Moderator
Avatar użytkownika

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

Daro69 napisał(a):
znowu ta promocja.

A no właśnie wszędzie promocja i promocja :lol:

_________________
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: 9 kwi 2017, o 16:51 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

Dzięki Mirku, :D
przecież już się kiedyś na tę promocję nabrałem. :?
muszę sobie jeszcze raz poukładać. :D
Wszystko można co nie można, tylko z wolna i z ostrożna. :lol:
Trzeba tylko uważać na promocje bo mieszają w głowie. . :? INT w gratisie. :lol: :lol:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 20:48 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 620
Pomógł: 50

czyli po negacji ~val2

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


następuje porównanie typu uint8_t z int zamiast uint8_t z uint8_t tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 21:01 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1073
Lokalizacja: okolice Warszawa
Pomógł: 98

Jarecki napisał(a):
następuje porównanie typu uint8_t z int zamiast uint8_t z uint8_t tak?

if(val1 == (~val2) )
cytat skrawka wyjaśnienia, z podanego przez Mirka linku.
"zostanie obliczone za naszymi plecami i umieszczone w przejściowej zmiennej o rozmiarze dwóch bajtów, a nie jednego jakby wydawać się mogło"
dlatego należy zapisać if(val1 == (uint8_t) ~val2 ) // rzutowanie :)
szczegóły pod linkiem. :)
http://atnel.pl/domyslna-promocja-do-typu-int.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 21:09 
Offline
Moderator
Avatar użytkownika

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

Daro69 ---> nic dodać nic ująć ;)

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 34 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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