Architektura Komputerów/Wykład 2: Dane: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 217: | Linia 217: | ||
|valign="top" width="500px"|[[Grafika:ASK_M2_S25.png]] | |valign="top" width="500px"|[[Grafika:ASK_M2_S25.png]] | ||
|valign="top"| | |valign="top"| | ||
. | Istnieją dwa sposoby zapisu danej wielobajtowej w pamięci, zwane konwencjami adresowania danych. Nazwy konwencji pochodzą z powieści „Podróże Guliwera”, w której odnosiły się one do dwóch społeczności, różniących się zasadami jedzenia gotowanych jaj. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Linia 229: | Linia 229: | ||
|valign="top" width="500px"|[[Grafika:ASK_M2_S27.png]] | |valign="top" width="500px"|[[Grafika:ASK_M2_S27.png]] | ||
|valign="top"| | |valign="top"| | ||
... | W konwencji Little-Endian adres bajtu odzwierciedla wagę bajtu w liczbie. Jest to konwencja naturalna dla komputera, chociaż dla człowieka na pierwszy rzut oka wydaje się dziwna – jesteśmy przyzwyczajeni do zapisywania liczb począwszy od najbardziej znaczących cyfr. | ||
Istotną cechą tej konwencji jest to, że jeżeli zapiszemy w pamięci daną całkowitoliczbową w długim formacie (np. 64 bity), to przy dostępach do jej mniej znaczącej części o mniejszej długości (np. jednego, dwóch lub czterech bajtów) adres danej będzie w każdym przypadku ten sam. Jest to wygodne przy częstym rzutowaniu typów całkowitoliczbowych, ca ma miejsce w programach pisanych w języku C. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Linia 235: | Linia 237: | ||
|valign="top" width="500px"|[[Grafika:ASK_M2_S28.png]] | |valign="top" width="500px"|[[Grafika:ASK_M2_S28.png]] | ||
|valign="top"| | |valign="top"| | ||
... | Zapis Big-Endian, naturalny dla człowieka, jest zwykle mniej wygodny dla komputera. Dostęp do danej całkowitoliczbowej w pamięci wymaga zmiany wartości adresu w zależności od długości danej. Jeżeli liczba 32-bitowa zostanie zapisana pod adresem A, to jej wartość w postaci jednobajtowej ma adres A+3. | ||
Istotną zaletą konwencji Big-Endian jest możliwość szybkiego porównywania łańcuchów tekstowych przy użyciu instrukcji operujących na liczbach całkowitych o długości 32 lub 64 bitów. Wektor znaków (bajtów) interpretowany jako liczba ma w najbardziej znaczącym bajcie pierwszy bajt łańcucha. Zamiast więc prowadzić operację porównywania łańcuchów znak po znaku, można ją wykonać posługując się grupami znaków o długości słowa procesora. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> |
Wersja z 12:17, 5 paź 2006
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |