witam
czasem spotykam sie w .sma z takim czyms '&&' to woem co to jest
ale napotykam tazke to '&'
co to jest to &
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Najlepsza odpowiedź Gość_21977_* , 06.07.2013 15:23
Tak.
Określamy największą liczbę, będącą potęgą liczby 2, nie większą niż 10.
Wynosi ona dokładnie
10 >= 8, więc zapisujemy 1
10 -= 8 = 2
kolejną potęgą jest 4
2 < 4, więc zapisujemy 0
kolejną potęgą jest 2
2 >= 2, więc zapisujemy 1
2 -= 2 = 0
kolejną (i ostatnią) potęgą jest 1
0 < 1, więc zapisujemy 0
Napisano 03.07.2013 18:23
witam
czasem spotykam sie w .sma z takim czyms '&&' to woem co to jest
ale napotykam tazke to '&'
co to jest to &
Napisano 03.07.2013 19:33
If you can dream it, you can do it.
Napisano 03.07.2013 19:39
Podwójne operatory (&& oraz ||) są to operatory logiczne (i oraz lub). Operatorem logicznym jest negacji jest !.
Pojedyncze (& oraz |) są operatorami bitowymi. Operatorem bitowym negacji jest ~.
Operatory logiczne traktują wszystko, co jest równe zero za fałsz, wszystko różne od zera jako prawdę (niektórzy mylnie uważają, że wszystko co dodatnie, a tak nie jest!) i zwracają 0 lub 1
Operator bitowy traktuje każdy bit z danych osobno, na każdym odpowiadającym bicie wykonuje dokładnie to samo, co logiczny na całej zmiennej, czyli dla a=0 i b=1 wynik operacji a | b i a || b będzie równy. Jednak dla a=0b0 i b = 0b11 otzymamy a | b = 0b11, a || b = 0b1. Dla a=0b10 i b = 0b1 otrzymamy a | b = 0b11 i a || b = 0b1
Na forum już to kilka razy było tłumaczone, jakbyś dobrze poszukał to być wiedział
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
Napisano 03.07.2013 22:39
Popularny
Podsumowując, operatory różnią się przede wszystkim typem:
Zwracana wartość dla operatora logicznego && jest także logiczna i odpowiada koniunkcji wartości logicznych wyrażeń, przyjmując:
Przy czym dana wartość jest logicznie:
Zwracana wartość dla operatora binarnego & jest wartością, będącą iloczynem binarnym tych wartości.
Iloczyn binarny & możemy odzwierciedlić jako koniunkcję logiczną && każdego z bitów binarnego zapisu liczby osobno.
Pozostając w tym odzwierciedleniu, możemy dojść do obrazowego wskazania absolutnej i ostatecznej różnicy między & a &&,
uznając, że & swym działaniem (jakkolwiek nie definiowanym) obejmuje pojedynczy bit, a && całą odzwierciedloną wartość binarną.
Idąc dalej tym krokiem rozumowania a za razem w ramach ciekawostki dodam, iż w niektórych językach programowania,
mamy do czynienia nie tylko z ograniczeniem działania danej operacji (w Twoim pytaniu iloczynu oznaczanego ampersandem &)
ale także:
używanego najczęściej przy wyjścia strumienia skryptu, czy przekierowaniu zwracanej wartości funkcji.
Jednakże z poyższych, w pawnie masz do dyspozycji jedynie operatory binarne (pojedyncze) i logiczne (podwójne).
Użytkownik Benio101 edytował ten post 03.07.2013 23:08
lit.
Napisano 03.07.2013 22:54
Benio napisz nowy temat w tutorialach przy okazji (wystarczy ctrl+c )
i od razu rób jakiś słowniczek wyrazów obcych, bo pierwszy raz spotykam się z wyrazem ampersant
Napisano 04.07.2013 07:36
lol. czytam i wytrzeszczam galy
a jak mam cos takiego?
if (get_cvar_num("gal_debug") & 4) { // }
Napisano 04.07.2013 12:03
Użytkownik K!113r edytował ten post 04.07.2013 15:03
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
Napisano 04.07.2013 12:25
Trzeci bit No chyba, że liczymy od zera, wtedy drugi.
Może tak koledze będzie łatwiej zrozumić. Ten zapis oznacza dokładnie to samo:
if (get_cvar_num("gal_debug") & 0b100)
I już coś w główce świta? Jak wiesz wszystko RÓŻNE od zera jest wartością true, więc jeśli COKOLWIEK różne od zera wyjdzie z tego wyrażenia, to if to jako true potraktuje i wpuści do środka.
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
Napisano 05.07.2013 07:05
czyli jeśli ustawię tego cvara np. na 10, to będzie true i poleci tym ifem dalej
Użytkownik Benio101 edytował ten post 05.07.2013 07:55
Liczne błędy poprawione
Napisano 05.07.2013 08:04
Nie, 10 = 8 + 2
Napisano 05.07.2013 08:16
ale tez 10 = 4 + 6 wiec o co chodzi?
Napisano 05.07.2013 08:52
Zapraszamy tutaj
http://amxx.pl/forum/16-tutoriale/
i szukania w google bo to jednak jest potężne narzędzie w dobrych rękach
Napisano 05.07.2013 13:32
czyli obie liczby musza byc potega dwojki np
24= 2^4+2^3
10 = 0b1010
ale o co chodzi z tym b w srodku liczby?
Napisano 05.07.2013 19:00
0b oznacza zapis binarny, 0x zapis szesnastkowy, a samo 0 przed właściwą wartością zapis ósemkowy. Jest jeszcze zapis 256-tkowy, czyli z użyciem znaków ascii, po prostu odpowiednie znaki ujmujesz w ' ' I nie, to nie jest string, to jest wartość pojedynczej zmiennej.
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
Napisano 06.07.2013 12:04
czyli 10 = 0b1010 to 2^3+0+2^1+0?
Napisano 06.07.2013 15:23 Najlepsza odpowiedź
Tak.
Określamy największą liczbę, będącą potęgą liczby 2, nie większą niż 10.
Wynosi ona dokładnie
10 >= 8, więc zapisujemy 1
10 -= 8 = 2
kolejną potęgą jest 4
2 < 4, więc zapisujemy 0
kolejną potęgą jest 2
2 >= 2, więc zapisujemy 1
2 -= 2 = 0
kolejną (i ostatnią) potęgą jest 1
0 < 1, więc zapisujemy 0
Napisano 08.07.2013 09:04
dobra a jak rozkodowac licze w systemie dwojkowym do dziesietneg?
np taka: 11101001
Napisano 08.07.2013 09:06
Napisano 08.07.2013 10:15
super. dzięki
0 użytkowników, 0 gości, 0 anonimowych