目次 - API(機能別) - バイト順と交換

バイト順と交換

インクルードファイル: SDL_endian.h

概要

ここにはエンディアンを扱う関数が分類されている.

整数や浮動小数点のような単純な型も複数のバイトで構成されている. 例えば, 32bit整数(Sint32)は4バイト(それぞれのバイトは8bit)使われている. エンディアンとはシステムがこの値をメモリ上にどのような順序で格納しているかを表している.

エンディアンは2つ - ビッグとリトルがある.

例: 32bit整数の10進数で16,909,060という数を考える. これは16進数では0x01020304である.
0x01が最上位バイト(最も大きな桁の値)で, 0x04が最下位バイト(最も小さな桁の値)である.

もしリトルエンディアンのシステムならば, 最下位バイトを先頭にメモリに格納される. 生成されるバイト順は:
0x04 0x03 0x02 0x01

もしビッグエンディアンのシステムならば, 最上位バイトを先頭にメモリに格納される. 生成されるバイト順は:
0x01 0x02 0x03 0x04

エンディアンのさらに詳しい説明はWikipedia(英語)(日本語)のこの記事を参照すること.

SDL_BYTEORDERはコンパイル時のバイト順を表すマクロである.

関数

  1. SDL_Swap16 - 16bit値のバイト順を交換する
  2. SDL_Swap32 - 32bit値のバイト順を交換する
  3. SDL_Swap64 - 64bit値のバイト順を交換する
  4. SDL_SwapBE16 - 16bitビッグエンディアンの値のバイト順を現在の環境のバイト順にする
  5. SDL_SwapBE32 - 32bitビッグエンディアンの値のバイト順を現在の環境のバイト順にする
  6. SDL_SwapBE64 - 64bitビッグエンディアンの値のバイト順を現在の環境のバイト順にする
  7. SDL_SwapFloat - 浮動小数点の値のバイト順を交換する
  8. SDL_SwapFloatBE - ビッグエンディアンの浮動小数点の値のバイト順を現在の環境のバイト順にする
  9. SDL_SwapFloatLE - リトルエンディアンの浮動小数点の値のバイト順を現在の環境のバイト順にする
  10. SDL_SwapLE16 - 16bitリトルエンディアンの値のバイト順を現在の環境のバイト順にする
  11. SDL_SwapLE32 - 32bitリトルエンディアンの値のバイト順を現在の環境のバイト順にする
  12. SDL_SwapLE64 - 64bitリトルエンディアンの値のバイト順を現在の環境のバイト順にする

SDL Wikiへのリンク

Byte Order and Byte Swapping - SDL Wiki