エンディアンネス
読み:エンディアンネス
外語:endianness

 数値をメモリーに書き込む際の順番のこと。
目次

概要
 RAMなどのメモリーは一般に、8ビットを1バイトという単位として扱っている。
 一方で、扱うデータのサイズは16ビットや32ビットと、大きな値となる。
 このとき、メモリーには8ビット単位で分割し一定の順序で格納することになるが、どのような順序とするかは幾つか方法があり、これをエンディアンネスという。

由来
 リトルエンディアンビッグエンディアンの名称は「ガリバー旅行記」中のLittle-endian(卵は細い方から割るべきと主張する側)とBig-endian(卵は太い方から割るべきと主張する側)との対立に由来する。

判別プログラム
 Cによる判別プログラム例は次のとおり。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
  int i = 1;
  if(*((char *)&i) == 0x01)
    printf("リトルエンディアン\n");
  else if(*((char *)&i + sizeof(i) - 1) == 0x01)
    printf("ビッグエンディアン\n");
  else
    printf(">謎<\n");
  return EXIT_SUCCESS;
}

再検索