Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] czym sie rozni && od &


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 2^{\lfloor\log_{2}10\rfloor}=2^{3}=8
 
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
 
10 = 1 \cdot 2^{3} + 0 \cdot 2^{2} + 1 \cdot 2^{1} + 0 \cdot 2^{0} = 1 \cdot 8 + 0 + 1 \cdot 2 + 0 = 0b1010

Przejdź do postu


  • Zamknięty Temat jest zamknięty
18 odpowiedzi w tym temacie

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

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 &


  • +
  • -
  • 0

#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 03.07.2013 19:33

http://pl.wikipedia...._(programowanie) - iloczyn bitowy
http://pl.wikipedia....unkcja_(logika)
http://pl.wikipedia....Operator_bitowy
  • +
  • -
  • 1

If you can dream it, you can do it.


#3 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

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ł :)


  • +
  • -
  • 3

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ę.
 
1988650.png?theme=dark


#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 03.07.2013 22:39

*
Popularny

Podsumowując, operatory różnią się przede wszystkim typem:

  • && jest typem logicznym
  • & jest typem binarnym

Zwracana wartość dla operatora logicznego && jest także logiczna i odpowiada koniunkcji wartości logicznych wyrażeń, przyjmując:

  • fałsz, jeśli przynajmniej jedna z wartości jest fałszem
  • prawdę, jest każda z wartości jest prawdą

Przy czym dana wartość jest logicznie:

  • prawdziwa, jeśli jest niezerowa
  • fałszywa, jeśli jest równa zero

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 &)

  • do pojedynczego bitu &, stawiając znak jednokrotnie i tworząc operator binarny
  • do wartości &&, stawiając znak dwukrotnie i tworząc operator logiczny

​ale także:

  • do całego wyrażenia &&&, stawiając znak trzykrotnie i tworząc operator współbieżny

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.


#5 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

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


(03.07.2013 23:09):
Poprawiłem literówkę.

  • +
  • -
  • 0

#6 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 04.07.2013 07:36

lol. czytam i wytrzeszczam galy xD

a jak mam cos takiego?

if (get_cvar_num("gal_debug") & 4)
{
//
}

  • +
  • -
  • 0

#7 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 04.07.2013 12:03

Nie wiem czy mi się dobrze zdaje ale to sprawdza drugi bit wartości cvaru, gdyż 4 to 1<<2. Jak się mylę proszę mnie poprawić :).

Ajj zapomniałem o 1<<0, skutki wakacji :)

Użytkownik K!113r edytował ten post 04.07.2013 15:03

  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#8 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

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.


  • +
  • -
  • 0

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ę.
 
1988650.png?theme=dark


#9 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.07.2013 07:05

czyli jeśli ustawię tego cvara np. na 10, to będzie true i poleci tym ifem dalej


(05.07.2013 07:55):
Pisząc nowego posta pamiętaj o ortografii, nie używaj zbyt dużo tagów BBCode.

Użytkownik Benio101 edytował ten post 05.07.2013 07:55
Liczne błędy poprawione

  • +
  • -
  • 0

#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.07.2013 08:04

Nie, 10 = 8 + 2



#11 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.07.2013 08:16

ale tez 10 = 4 + 6 wiec o co chodzi?


(05.07.2013 08:46):
Linki w drugim poście nie zostały Ci podane bez powodu.
6 nie jest potęgą dwójki.
10 = 0b1010
(05.07.2013 08:51):
Jest 10 rodzajów ludzi, rozumiejący system binarny i nie rozumiejący. Na razie, niestety, nadal należysz do tego drugiego.
Rivit (22.02.2019 15:48):
Ale ja głupi byłem, haha

  • +
  • -
  • 1

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 985
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

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


  • +
  • -
  • 1

#13 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

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?


  • +
  • -
  • 0

#14 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

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.


  • +
  • -
  • 3

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ę.
 
1988650.png?theme=dark


#15 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 06.07.2013 12:04

czyli 10 = 0b1010 to 2^3+0+2^1+0?


  • +
  • -
  • 0

#16 Gość_21977_*

  • Gość

Reputacja: 0

Offline

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 2^{\lfloor\log_{2}10\rfloor}=2^{3}=8
 
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
 
10 = 1 \cdot 2^{3} + 0 \cdot 2^{2} + 1 \cdot 2^{1} + 0 \cdot 2^{0} = 1 \cdot 8 + 0 + 1 \cdot 2 + 0 = 0b1010



#17 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 08.07.2013 09:04

dobra a jak rozkodowac licze w systemie dwojkowym do dziesietneg?

 

np taka: 11101001


  • +
  • -
  • 0

#18 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 985
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 08.07.2013 09:06

http://www.unit1.pl/66,txt


  • +
  • -
  • 1

#19 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 08.07.2013 10:15

super. dzięki

 


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych