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



Teraz jest 28 mar 2024, o 12:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 14 cze 2019, o 15:25 
Offline
Nowy

Dołączył(a): 18 sie 2017
Posty: 2
Pomógł: 0

Cześć wszystkim.

Mam pytanie nowicjusza. Zapoznałem się z BB i z filmem na temat maskowania bitów oraz filmem dotyczącym magicznej tytułowej instrukcji.

Maskowanie bitowe jest już dla mnie zrozumiałe tak jak i wyniki otrzymane po przez operatory bitowe w wyrażeniach.
Wiem że ta instrukcja tyczy obsługi guzika zwierającego do masy (pin avr podciągnięty wewnętrznie do VCC).
I uwaga moje pytanie :) wyrażenie może dostać 1 bądź 0 więc instrukcja if działa w tym przypadku na zasadzie boola ? 1 True 0 False ?

Przepraszam za tak banalne pytanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2019, o 15:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Dokładnie tak. Wartość 0 oznacza false, każda inna większa od zera to true.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2019, o 15:54 
Offline
Moderator
Avatar użytkownika

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

Gastek napisał(a):
moje pytanie wyrażenie może dostać 1 bądź 0 więc instrukcja if działa w tym przypadku na zasadzie boola ? 1 True 0 False ?


ale IF zawsze działa na zasadzie rozstrzygania True/False i nic innego - absolutnie nic innego. To tak tylko w uzupełnieniu. Natomiast wykrzyknikiem w tym warunku po prostu odwracasz wartość wyrażenia, wartość logiczną naturalnie.


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: 14 cze 2019, o 16:38 
Offline
Nowy

Dołączył(a): 18 sie 2017
Posty: 2
Pomógł: 0

Dziękuję wam za odpowiedź. Musiałem się upewnić czy dobrze sprawę zrozumiałem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2019, o 17:30 
Offline
Moderator
Avatar użytkownika

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

ale kolega xentis odpowiedział jako pierwszy poprawnie i to jemu należy się przycisk "POMÓGŁ" ;) polecam - bo kolega xentis jest bardzo pomocny na naszym forum ... ja jestem pełen podziwu dla ilości podpowiedzi i cierpliwości jaką on swoją osobą reprezentuje na forum ;)

_________________
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: 14 cze 2019, o 19:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

Jednak Kolega xentis nie był zbyt precyzyjny, bo liczba ujemna również da "true" :)
W dużym stopniu ogólności uważam, że nie można tego pominąć w wątku, bo za chwilę ktoś będzie się kłócił, że "xentis napisał" :).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2019, o 20:38 
Offline
Moderator
Avatar użytkownika

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

Zealota napisał(a):
Jednak Kolega xentis nie był zbyt precyzyjny, bo liczba ujemna również da "true"

No ale zobacz, warunki logiczne nie rozróżniają czy liczba jest dodatnia czy ujemna jeśli chodzi o rozpatrzenie jej wartości. Brany jest pod uwagę cały bajt, słowo czy podwójne słowo - i jeśli nie ma żadnej jedynki - to jest FALSE, a wystarczy jedna jedynka w środku i już jest TRUE. Na szczęście logika w C jest prosta i przepiękna - każda wartość różna od zera to TRUE a tylko samo biedne zero jest FALSE.

Wartość "mniejsza od zero" czyli np -1 to tak na prawdę gdy spojrzeć na liczbę bez znaku - a można tak zrobić, to przecież będzie wartość > 0 ;) dokładnie mówiąc 0xFF albo 0xFFFF itd

_________________
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: 14 cze 2019, o 21:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

Mirku kupuję Twoje wytłumaczenie, aczkolwiek zauważmy, że mamy tutaj doczynienia prawdopodobnie z zupełnie początkującym, zatem bez sprostowania można tylko niepotrzebnie zamieszać młodemu umysłowi :) Jeśli spojrzymy np. do takiej książki Prata o języku C to tam jest wyraźnie napisane "różna od zera" to "true", zatem nie widzę powodu, żeby takie sprostowanie się pojawiło w wątku, pomimo, ze to przeszkadza Koledze zubikowi :)
Moim celem oczywiście nie było by "dopiec" xentisowi, tylko żeby autor miał pełen obraz sytuacji.
Po tej wymianie zdań tym więcej wyniesie, jeśli tylko doczyta.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2019, o 22:42 
Offline
Moderator
Avatar użytkownika

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

Zealota napisał(a):
Moim celem oczywiście nie było by "dopiec" xentisowi, tylko żeby autor miał pełen obraz sytuacji.

Nie - no tego bym nawet nie pomyślał znając ciebie ;) i twoją dociekliwość a także co tu dużo mówić - takie wzorcowe inżynierskie podejście do wielu zagadnień.

Zealota napisał(a):
aczkolwiek zauważmy, że mamy tutaj doczynienia prawdopodobnie z zupełnie początkującym, zatem bez sprostowania można tylko niepotrzebnie zamieszać młodemu umysłowi

Ja oczywiście też się nie upieram i uważam, że już ta dyskusja i uwagi, które tu padają - to fajny materiał dla każdego początkującego ... łącznie z uwagą zubika o tym, że akurat ta wartość odczytywania stanu pinu na porcie nie może być ujemna ...ale ..

ale tak puszczając dalej wodze wyobraźni co kto może pomyśleć to też się zastanawiam ... czy w sformułowaniu "różne od zera" może ktoś pomyśleć o tym, że akurat wartość ujemna np -1 mogłaby zostać pominięta - chyba nie ...

I tu rzeczywiście jeśli się tego literalnie trzymać to rzeczywiście można uznać, że warto być może poprawić nieco określenie kolegi xentisa

xentis napisał(a):
każda inna większa od zera to true.


(która jak się wie - jak pisałem wcześniej, że liczba ujemna to tylko umowne określenie) to hmmm rzeczywiście całkowicie początkującą osobę mogłaby wprowadzić być może w konsternację - i próbę (ale mam nadzieję, że tylko na chwilę) myślenia ;) że jest jeszcze jakieś trzecie wyjście - właśnie dla liczb ujemnych a przecież to nie jest logika rozmyta i mamy tylko dwa stany ;) true i false.

Kończąc już - przecież po to jest forum, żeby czasem coś uzupełnić, poprawić itd ... więc myślę, że nikt nie może chyba nic nikomu zarzucić złego czy złych intencji w tej dyskusji - wręcz odwrotnie.

_________________
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 cze 2019, o 10:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Cytuj:
każda inna większa od zera to true.
Zgadza się, z rozpędu źle sformułowałem wypowiedź. Najbardziej poprawna forma, chyba zrozumiała dla każdego będzie "każda inna różna od zera to true" :)
Dla początkujących kwestia liczb ujemnych może nie być tak jasna.



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: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 6 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO