Skocz do zawartości

Znajdź zawartość

Wyświetlanie wyników dla tagów 'operacje' .



Więcej opcji wyszukiwania

  • Wyszukaj za pomocą tagów

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukaj przy użyciu nazwy użytkownika

Typ zawartości


Forum

  • Społeczność Pawno.PL
    • Ogłoszenia
    • Projekty Pawno.PL
  • Programowanie PAWN
    • Bazy danych
    • Pomocne materiały
    • Rozwiązywanie problemów
    • Gotowe rozwiązania
  • Programowanie ogólne
    • LUA
    • Języki programowania
    • Webdevelopment
  • Grand Theft Auto V - Multiplayer
    • GTA MP - Dyskusja
    • GTA MP - Programowanie
    • GTA MP - Serwery
  • Grand Theft Auto San Andreas - Multiplayer
    • San Andreas MultiPlayer - Rozmowy
    • San Andreas MultiPlayer - Serwery
    • Multi Theft Auto - Rozmowy
    • Multi Theft Auto - Serwery
  • Singleplayer
    • V
    • IV
    • San Andreas
    • Vice City
    • I, II, III i pozostałe
  • Technologia komputerowa / Administracja serwerów
    • Serwery wirtualne / dedykowane
    • Komputery / laptopy
  • Pozostałe
    • Oferty
    • Firmy hostingowe
    • Off Topic
    • Archiwum

Szukaj wyników w...

Znajdź wyniki, które...


Data utworzenia

  • Od tej daty

    Do tej daty


Ostatnia aktualizacja

  • Od tej daty

    Do tej daty


Filtruj po ilości...

Dołączył

  • Od tej daty

    Do tej daty


Grupa podstawowa


Strona WWW


Skype


Gadu-Gadu


Miejscowość


Nazwa serwera


Adres IP

Znaleziono 1 wynik

  1. l0nger

    Operacje bitowe

    Operacje bitowe W tym poradniku opisze co to sa operacje na bitach, jak stosujemy przesuniecia oraz dowiemy sie co to sa operacje logiczne (koniunkcja, alternatywa, negacja). Pierwsze pytanie, ktore nam sie nasywa: co to jest operacja bitowa? Operacja bitowa - jest to dzialanie na grupach bitow. Z powodu sposobu przedstawienia pamieci sens ma dla liczb calkowitych (w tym znakow). Dane sa przechowywane w pamieci w systemie dwojkowym. Przyklady wprowadzajace: W pozniejszych przykladach bede wzorowal sie na 4 bitach, poniewaz w pamieci komputera bajty skladaja sie z 8. Natomiast w PAWN wszystkie nasze zmienne sa 4 lub 8 bajtowe, istnieje rowniez 16 jak i 32. Ilosc dostepnych bitow okresla definicja cellbits. Dobra, zaczynamy przygode! 1) Przesuniecia Krotka zasada dzialania: Zmienia kolejnosc bitow na miejsce sasiednie. Istnieja 4 typy przesuniec (operator stosowania w nawiasie!): 1.1) W lewo (<<) 1.2) W prawo arytmetycznie (>>) 1.3) W lewo logicznie (<<<) 1.4) W prawo logicznie (>>>) Przyklady zastosowania oraz opis co i jak dziala ponizej :). 1.1) Przesuniecie w lewo: 1 << 3 Bity liczby jeden (0001) przesuwa sie w lewo o trzy pozycje. W brakujace miejsca wpisywane sa zera, bity wykraczajace poza zakres sa tracone. Zatem nasze dzialanie (tj. 1 << 3) wynosi 1000 co po przeliczeniu na system dziesietny da nam liczbe 8. Efekt: przesuniecie w lewo o N pozycji rownoznaczne jest z mnozeniem przez 2 do potegi N. 1.2) Przesuniecie w prawo arytmetycznie: 7 >> 1 Bity liczby siedem (0111) przesuwa sie w prawo o jedna pozycje. W brakujace miejsca sa dopisywane bity o wartosci najstarszego bitu pierwotnej liczby, bity wykraczajace poza zakres sa tracone. Zatem nasze 7 >> 1 wyniesie 0011 w systemie dziesietny da nam liczbe 3. Brak sa uzupelniane bitem znaku. 15 >> 1 Efektem jest przesuniecie w prawo o N pozycji rownoznaczne jest z dzieleniem calkowitym 2 do potegi N 1.3) Przesuniecie w prawo logicznie: 15 >>> 1 Bity liczby pietnascie (1111) przesuwa sie w prawo o jedna pozycje. W brakujace miejsce dopisywanie sa zera, bity wykraczajace poza zakres sa tracone. Zatem 15 >>> 1 wyniesie 0111, co po przeliczeniu na system dziesietny da nam liczbe 7. Braki uzupelniane sa zerami. 2) Operacje logiczne Dzialania logiczne wykonywane sa miedzy odpowiednimi bitami obu liczb. 2.1) Koniunkcja (inaczej iloczyn (operator &)): 8 & 2 Zapis dziesietny tych liczb na binarny: 1000 // 8 0010 // 2 Teraz bierzemy kolejne bity, wyznaczajac ich iloczyny. Rozpiska: // tablica prawd 1 & 1 = 1 1 & 0 = 0 0 & 0 = 0 0 & 0 = 0 1000 0010 Wykonujemy dzialanie 1 & 0 = 0, zatem pierwszy bit od lewej strony jest rowny 0. 1000 0010 Wykonujemy dzialanie 0 & 0 = 0, zatem drugi bit od lewej strony jest rowny 0. 1000 0010 Wykonujemy dzialanie 0 & 1 = 0, zatem drugi bit od lewej strony jest rowny 0. 1000 0010 Wykonujemy dzialanie 0 & 0 = 0, zatem drugi bit od lewej strony jest rowny 0. Zatem 8 & 2 = 0000, po przeliczeniu na system dziesietny daje nam 0. 2.2) Alternatywa(inaczej suma(operator |)): Zrobimy tak jak w przykladzie koniunkcji, tylko, ze tutaj dodamy wartosci. 5 | 3 Zapis dziesietny na binarny 0101 // 5 0011 // 3 Teraz bierzemy kolejne bity, wyznaczajac ich sume. Rozpiska: 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 | 0 = 0 0101 0011 Wykonujemy dzialanie 0 | 0 = 0, zatem pierwszy bit od lewej strony jest rowny 0. 0101 0011 Wykonujemy dzialanie 1 | 0 = 1, zatem drugi bit od lewej strony jest rowny 1. 0101 0011 Wykonujemy dzialanie 0 | 1 = 1, zatem drugi bit od lewej strony jest rowny 1. 0101 0011 Wykonujemy dzialanie 1 | 1 = 1, zatem drugi bit od lewej strony jest rowny 1. Zatem 5 | 3 = 0111, po przeliczeniu na system dziesietny daje nam 7. 2.3) Roznica symetryczna XOR (operator ^)): 3 ^ 1 Zapis dziesietny na binarny 0011 // 3 0001 // 1 Teraz bierzemy kolejne bity, wyznaczajac ich roznice symetryczna. Rozpiska: 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0 0011 0001 Wykonujemy dzialanie 0 ^ 0 = 0, zatem pierwszy bit od lewej strony jest rowny 0. 0011 0001 Wykonujemy dzialanie 0 ^ 0 = 0, zatem drugi bit od lewej strony jest rowny 0. 0011 0001 Wykonujemy dzialanie 1 ^ 0 = 1, zatem drugi bit od lewej strony jest rowny 1. 0011 0001 Wykonujemy dzialanie 1 ^ 1 = 0, zatem drugi bit od lewej strony jest rowny 0. Zatem 3 ^ 1 = 0010, po przeliczeniu na system dziesietny daje nam 2. 2.4) Negacja (operator ~)): Nie mylic z negacja warunkowa. ~1 Zamiana systemu dziesietnego na binarny 0001 // 1 Operacja jednoargumentowa - nie porownujemy bitow ze wzorcem, a jedynie zamieniamy wszystkie 0 na 1 i odwrotnie. Stad: ~0001 1110 Przyklad pokazuje idee - nie ma sensu przeliczac na dziesietny, poniewaz w PAWN nie spotkamy 4 bitowego typu integer. Gdy na liczbe w pamieci komputera spojrzymy na zbior wartosci logicznych (1 lub 0) to w prosty sposob wykorzystac mozemy operacje bitowe do przechowania lub sprawdzania czesci skladowej w calosci. Dokladniej chodzi o to, ze w kazdej wartosci 0 lub 1 jest przypisywana jakas funkcja (znaczenie), Mamy ciag: 0101 Mozemy to przeliczyc na system dziesietny, ale latwiej jest pracowac w takiej postaci. Kazda liczba to informacja czy dana funkcja skladowa jest aktywna (1) lub nie (0). Oryginalna tresc by R3D
×