Myślę, że trochę mylisz "~" z "!". To dwa różne operatory i tak:
"~" to
bitowa negacja45 dziesiętnie to 00101101 binarnie
Jęsli więc a=00101101
to ~a = 11010010 lub 210 dziesiętnie
To rozumiesz.
"!" to
operator negacji, który w połączeniu z argumentem tworzy
wyrażenie, które jest prawdą lub fałszem!!!
Zatem !a jest równoważne z zapiszem (a==0), wyrażenie to będzie prawdą tylko i wyłącznie wtedy gdy a=0 i adekwatnie fałszem gdy a jest różne od 0.
W takim razie jeśli a=45 i zapiszesz if(!a) to wartość tego wyrażenia będzie fałszem, prawda?
Jeśli zapiszesz if(a) to wartość tego wyrażenia będzie prawdą.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Czyli za pomocą if(!a) co jest równoznaczne z if(a==0) sprawdzamy czy argument jest równy 0
za pomocą if(a) co jest równoznaczne z if(a!=0) sprawdzamy czy argument jest różny od 0
Jaśniej?
