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


再検索