←  Tutoriale

AMXX.pl: Support AMX Mod X i SourceMod

»

Bramki logiczne

  • +
  • -
K!113r - zdjęcie K!113r 19.03.2012

Witam, jako że w tym dziale ich nie widziałem (a raz było mi to potrzebne :P) to postanowiłem wstawić.

Bramka logiczna jest to element (układ) cyfrowy realizujący jakąś prostą funkcję logiczną, której zarówno argumentami jak i wartością (wyjściem) jest jedna z dwóch wartości 0 lub 1.

Oczywiście 0 i 1 to logiczny fałsz i prawda, bowiem w bramkach logicznych operujemy tylko na zmiennych typu bool.

Jak też wiadomo, w zmiennych typu bool obowiązują prawa algebry Boole'a, ale nie teraz o tym :P.

Dalsze oznaczenie:
A, B - sygnały na wejściu (czyli 0 lub 1)
Y - sygnał na wyjściu

rodzaje bramek:

1. NOT (Negacja)

tu po prostu negujemy sygnał w sposób następujący:

new bool: Y
new bool: A
Y = !A


Tablica prawdy

A  |  Y
---|---
0  |  1
1  |  0

2. AND (iloczyn logiczny)


Y = A * B


przykład:
i tu przykład z menu do przetestowania dla niedowiarków:
Spoiler



Tablica prawdy:

A   B | Y
------|--
0   0 | 0
1   0 | 0
0   1 | 0
1   1 | 1

3. NAND (negacja iloczynu)


Y = !(A * B)


przykład:
Spoiler



Tablica prawdy
A   B | Y
------|--
0   0 | 1
1   0 | 1
0   1 | 1
1   1 | 0

4. OR (suma logiczna)


Y = A + B


przykład:
Spoiler



Tablica prawdy
A   B | Y
------|--
0   0 | 0
1   0 | 1
0   1 | 1
1   1 | 1

5. NOR (negacja sumy)


Y = !(A + B)


przykład:
Spoiler



Tablica prawdy
A   B | Y
------|--
0   0 | 1
1   0 | 0
0   1 | 0
1   1 | 0

6. XOR (EX-OR)


Y = A * !B + !A * B


przykład:
Spoiler



Tablica prawdy
A   B | Y
------|--
0   0 | 0
1   0 | 1
0   1 | 1
1   1 | 0

7. XNOR (EX-NOR)


Y = A * B + !A * B


Spoiler


Tablica prawdy
A   B | Y
------|--
0   0 | 1
1   0 | 0
0   1 | 0
1   1 | 1



Zakaz kopiowania tut'a bez mojej zgody!
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 19.03.2012

no ok, wszytsko ładnie opisane ale po co to ?
tu masz temat gdzie jest opisane: Operacje bitowe - AMXX.pl: Support AMX Mod X

Masz kilka błędów:
XNOR:
napisałeś że to jest
Y = A * B + !A * B
a to jest
Y = A * B + !A * !B lub Y = A * B + !(A + B)
zalezy jak się zastosuje De Morgana
+ Niejestem pewien czy mozna tak to zrobić w pawn ale moge być w błędzie
bo to mi się wydaje że * to w pawn powinno być && a + to || więc chyba tak powinno wyglądać
Y = A && B || !A && !B
Użytkownik Cypis' edytował ten post 19.03.2012 22:53
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 19.03.2012

Niejestem pewien czy mozna tak to zrobić w pawn ale moge być w błędzie
bo to mi się wydaje że * to w pawn powinno być && a + to || więc chyba tak powinno wyglądać
Y = A && B || !A && !B


sam nie jestem pewien ich użycia, lecz póki co z &&i || spotkałem się tylko w warunkach.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 19.03.2012

& i | to nie to samo co && i || dodatkowo != to jest zwykla negacja(NOR) dla rownosci dla mnie temat zbędny bo operacje bitowe kto powinien znac ten zna kto nie zna to ma od tego tutorial a bramki logiczne chyba sie tutaj nie odnajdą chyba ze chcesz zacząć serie tutoriali z elektroniki
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 20.03.2012

Jeżeli temat zbędny to można wywalić, a ja potrzebowałem coś w stylu bramki XOR, wiem że warunkami można zrobić (tak mi się w bańce wydaje) ale za dużo bym miał do pisania :P
Odpowiedz

wheypro - zdjęcie wheypro 16.10.2012

Suma iloczynu:
Y = A + B

przykład:
Spoiler


Tablica prawdy
A B | Y
------|--
0 0 | 0
1 0 | 1
0 1 | 1
1 1 | 1

Tu się machnołeś gdyż przy sumie to tak jak przy koniungcjii, 2 warunki muszą być spełnione by wartość całkowita była logiczna. Tu macie poprawnie:

Tablica prawdy
A B | Y
------|--
0 0 | 0
1 0 | 0
0 1 | 0
1 1 | 1
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 16.10.2012

I tu się z Tobą nie zgodzę
0+0=0
1+0=1
0+1=1
1+1=1

Czyli albo jeden warunek, albo dwa muszą być spełnione

to co podałeś jest błędem bo poprawna wersja
Y=A*B
0*0=0
1*0=0 // tak jak w matematyce, mnożenie przez 0 daje 0
0*1=0
1*1=1

Użytkownik K!113r edytował ten post 16.10.2012 17:02
Odpowiedz