#3 Naucz się C# razem ze mną - Operatory

in #polish7 years ago (edited)

Operatory3.png

Hej!

Dzisiaj krótki wpis jako uzupełnienie do poprzedniego o zmiennych.
Poznamy resztę operatorów :)
Zaczynajmy!

Operatory relacyjne

Jak nazwa wskazuje, dzięki tym operatorom będziemy mogli porównywać.
Tabelka:
Operatory_relacyjne.png

Operatory logiczne

Operatory_logiczne.png

Operatory bitowe

Umożliwiają nam wykonywanie operacji na bitach. Takie operacje są baaaardzo szybkie, bo korzystamy w końcu z zer i jedynek, czyli z tego co komputery lubią najbardziej. Na samym początku jednak:

  • Zamiana liczby w systemie dziesiątkowym na liczbę w systemie binarnym
    Najprościej mówiąc: dzielimy liczbę przez dwa i zapisujemy resztę z dzielenia, do momentu gdy nie będziemy już mogli tego zrobić (dzielenie przez 0).
    Tabelka:
    ZamianaBinarki.png

Zamiana za nami, pora na operatory:

  • Koniunkcja
    Operatory_bitowe_koniunkcja.png

  • Alternatywa
    Operatory_bitowe_alternatywa.png

  • Alternatywa wykluczająca
    Operatory_bitowe_alternatywa_wykluczajaca.png

  • Negacja
    Operatory_bitowe_negacja.png

Coooo? Dlaczego -7?! Przecież 1001 to 9 w systemie dziesiątkowym!
Już tłumaczę. Przyda mi się do tego kalkulator programisty (znajdziecie go u siebie, jeśli macie Windowsa, chociaż z tego, co pamiętam Linux w swoim podstawowym kalkulatorze też ma takie bajerki). Wpiszmy tam naszą liczbę, czyli 6 w systemie binarnym.
Kalkulator1.png

Okej. Klikam przycisk który zaznaczyłem na czerwono:
Kalkulator2.png

To, co teraz widzę to pojedyncze bity na któych jest zapisywana liczba. Skoro przy negacji 0 zamieniane jest na 1, to teoretycznie oznacza, że wszystkie zera które widzimy na załączonym obrazku staną się po negacji jedynkami. Sprawdźmy to.
Kalkulator3.png

Kalkulator4.png

Działa tak jak przypuszczaliśmy. A za minus odpowiedzialny jest ostatni bit (zaznaczony na obrazku powyżej). Jedynka odpowiada za wartość ujemną, a 0 za wartość dodatnią. Przechodzimy do następnego operatora.

  • Przesunięcie bitowe
    Załóżmy, że mamy liczbę 4. Zamieniamy ją na liczbę w systemie binarnym. Nasz wynik to 0100.
    Operator przesunięcia bitowego to ">>" lub "<<" (w zależności od tego, w którą stronę przesuwamy), a korzystamy z niego np. tak:
Console.WriteLine(4>>1); //Otrzymany wynik to 2.
Console.WriteLine(4<<1); //Otrzymany wynik to 8. 

Co się teraz dzieje? Po lewej stronie operatora mamy liczbę na której chcemy wykonać nasze przesunięcie bitowe, a liczba po prawej stronie mówi nam, o ile miejsc się przesuniemy.
Przesunięcie bitowe liczby 4 o 1 miejsce w prawo wygląda tak: 0100 ->(1 miejsce w prawo)-> 0010.
Przesunięcie bitowe liczby 4 o 1 miejsce w lewo to: 0100 ->(1 miejsce w lewo)->1000.
Jak pewnie zdążyłeś zauważyć, przesunięcie jest odpowiednikiem dzielenia lub mnożenia przez 2. Bardzo szybkim odpowiednikiem.

Zakończenie

Huh. Wyszło tego trochę :D. Następny post będzie o pętlach, tymczasem zachęcam do obserwowania, zostawienia komentarza i upvote'a, jeśli uważasz, że na to zasłużyłem :D. Poniżej standardowo linki do wcześniejszych postów z tej serii. Trzymajcie się cieplutko, hej :D.

Poprzednie posty z tej serii:
#1 Piszemy pierwszy program
#2 Zmienne