![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 19.02.2009 Ostrzeżenie: (0%)
|
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ę. |
|
|
|
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. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 19.02.2009 Ostrzeżenie: (0%)
|
|
|
|
|
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 (IMG:style_emoticons/default/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ć (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 12:58 |