Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> operator bitowy NOT ~2 == -3
3.grosz
post 7.01.2010, 20:15:49
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.02.2009

Ostrzeżenie: (0%)
-----


  1. <?php
  2. //binary NOT
  3. $dwa = 2;
  4. echo ~$dwa; //-3
  5. ?>


Zapoznałem się z zapisem znak-moduł oraz z kodem uzupełnień do jedynki i dwójki. Próbuję zrozumieć co dzieje się w gdy wywołuję powyższy skrypt. Jeśli więc binarne 2 to 00000010, to po negacji przybiera postać 11111101, zgodnie z U1. Tylko skąd PHP wie, że liczba 11111101, to -3, a nie 253.
Proszę o sugestię.
Go to the top of the page
+Quote Post
Jabol
post 7.01.2010, 20:32:08
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


http://pl.wikipedia.org/wiki/Kod_uzupełnień_do_dwóch

Ach widzę, że już się z tym zapoznałeś.

int to domyślnie int ze znakiem. A liczba całkowita ze znakiem jest reprezentowana właśnie w tym zapisie binarnym, conajmniej na większości nowoczesnych komputerów.
Go to the top of the page
+Quote Post
3.grosz
post 7.01.2010, 20:54:05
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.02.2009

Ostrzeżenie: (0%)
-----


Cytat(Jabol @ 7.01.2010, 20:32:08 ) *
int to domyślnie int ze znakiem. A liczba całkowita ze znakiem jest reprezentowana właśnie w tym zapisie binarnym, conajmniej na większości nowoczesnych komputerów.


dzięki, pomogło.
Go to the top of the page
+Quote Post
thek
post 7.01.2010, 21:10:40
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Upraszczając do jednego zdania:
W systemie notacji U2 najstarszy bit (najbardziej po lewej) określa znak. 0 to liczba dodatnia, a 1 to ujemna. Sprawdź to zresztą sobie sam jako zadanie domowe winksmiley.jpg
Zgodnie z wzorem dla 8-bitów zakres U2 jest od -128 do 127, więc wspomniane przez Ciebie 253 nawet nie ma jak wystąpić smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 07:34