エンディアンネス

読み:エンディアンネス
外語: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;
}

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club