Skocz do zawartości

negacja bitowa


Rekomendowane odpowiedzi

Problem jest taki ze po pierwsze negacja jest opisana u nas jako operacja jednoargumentowa czyli np:

GML
~zmienna

powinna byc dla gml zrozumiala. Niestety tak nie jest.

Gml rozumie negacje dopiero w instrukcji przypisania, tj

GML
zmienna=~zmienna

Jednak tu pojawia sie pytanie, dlaczego zaprzeczeniem wartosci true jest wartosc -2 a nie 0???

Jak w koncu nalezy uzywac negacji w GML'u???

Odnośnik do komentarza
Udostępnij na innych stronach

To akurat znalazlem w "kursie gml'a" Platyny

| - OR  bitowa suma logiczna (alternatywa)
& - AND bitowy iloczyn logiczny (koniunkcja)
^ - XOR bitowa różnica symetryczna
<< - przesunięcie w lewo
>> - przesunięcie w prawo
[b] ~ - negacja bitowa[/b]

tutaj:

https://gmclan.org/index.php?czytajart=72

 

//edit

chyba juz wiem o co chodzi.

dla GML true to wcale nie jest 1 tylko.... 001

Czyli negujac true negujemy az 3 bity zamiast jednego. To zupelnie nie logiczne.

Moglby ktos tam do kursu wstawic jakies krotkie wyjasnienie.

 

Dzieki Karol320, zrobilem Twoim sposobem.

Odnośnik do komentarza
Udostępnij na innych stronach

Negacja binarna to nie to samo co negacja logiczna. GM określa liczby za pomocą zmiennoprzecinkowej liczby podwójnej precyzji, a najgorsze jest to, że GM przy operatorach binarnych liczby zmiennoprzecinkowe konwertuje na 64 bitowe liczby całkowite - ze znakiem oczywiście.

 

Tak czy inaczej, 1 binarnie wygląda tak:

0000000000000000000000000000000000000000000000000000000000000001 = 1

 

Teraz, jeśli zanegujesz te 1 to otrzymasz:

1111111111111111111111111111111111111111111111111111111111111110 = ~1 = -2

 

I to w sumie wszystko.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...