Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

©2020 mgr Jerzy Wałaszek
I LO w Tarnowie

logo

Autor artykułu: mgr Jerzy Wałaszek

 

SDL2

Interfejs SDL2 wg kategorii

Kolejność Bajtów i ich Wzajemna Zamiana

Rozdziały:
     Interfejs SDL2 wg nazw
     Interfejs SDL2 wg kategorii

 

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/APIByCategory.

Kolejność Bajtów i ich Wzajemna Zamiana

Pliki nagłówkowe: SDL_endian.h

Wprowadzenie

Ta kategoria zawiera funkcję obsługi wartości z określoną kolejnością bajtów.

Proste typy danych, takie jak liczby całkowite i zmiennoprzecinkowe, składają się z kilku bajtów. Na przykład 32 bitowa liczba całkowita (Sint32) używa czterech bajtów (każdy ma 8 bitów). Kolejność bajtów opisuje sposób uporządkowania ich dla tej wartości w pamięci.

Istnieją dwie podstawowe postacie kolejności bajtów – duża i mała.

  • SDL_LIL_ENDIAN oznacza kolejność 1234, gdzie najmniej znaczący bajt jest przechowywany jako pierwszy,
  • SDL_BIG_ENDIAN oznacza kolejność 4321, gdzie pierwszym bajtem jest najbardziej znaczący.

Przykład: wyobraź sobie 32-bitową liczbę całkowitą o wartości dziesiętnej 16.909.060.

W postaci szesnastkowej wygląda ona tak: 0x01020304.
0x01 jest najbardziej znaczącym bajtem (tym, który najwięcej zwiększa tę wartość). 0x04 jest najmniej znaczącym bajtem (ponieważ zwiększa on najmniej tę wartość).
Gdy to zostanie umieszczone w pamięci w systemie stosującym małą kolejność bajtów (ang. little-endian system), to bajty znajdą się w kolejności od najmniej znaczącego najpierw, co utworzy strumień bajtów:

0x04 0x03 0x02 0x01

Gdy to zostanie umieszczone w pamięci w systemie stosującym dużą kolejność bajtów (ang. big-endian system), to znajdą się one w kolejności z najbardziej znaczącym bajtem najpierw, tworząc strumień bajtów:

0x01 0x02 0x03 0x04

Więcej informacji na ten temat znajdziesz w Wikipedii.

SDL_BYTEORDER jest makrem, które odpowiada kolejności bajtów używanych przez procesor, dla którego zostało skompilowane.

  • SDL_BYTEORDER jest równoważne SDL_LIL_ENDIAN dla x86, x64 i podobnych systemów używających małej kolejności bajtów.
  • SDL_BYTEORDER jest równoważne SDL_BIG_ENDIAN dla PowerPC i podobnych systemów używających dużej kolejności bajtów.

Funkcje

SDL_Swap16
SDL_Swap32
SDL_Swap64
SDL_SwapBE16
SDL_SwapBE32
SDL_SwapBE64
SDL_SwapFloat
SDL_SwapFloatBE
SDL_SwapFloatLE
SDL_SwapLE16
SDL_SwapLE32
SDL_SwapLE64

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2020 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.