このページの本文へ

前へ 1 2 次へ

Windows Info 第338回

今更ながらコンピュータにおけるエンディアンの話

2022年07月31日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 アプリケーションを使うだけなら問題はないが、コンピューターに関するドキュメントを読む場合などに「エンディアン」の理解が必要になることがある。というわけで、今回は今更ながらエンディアンについて解説する。

Windowsでは、x86/x64でもARMでも基本的にリトルエンディアンで数値を表現する。Windowsが使うUnicode(UTF-16エンコーディング)は、16bitで文字を扱うため、エンディアンに影響される

そもそもエンディアンとはなんぞや

 と書いていきなりだが、エンディアンはいわゆる”俗称”であり、正式には、バイト順(Byte Order、バイトオーダー)である。簡単に言えば、メモリや通信において、複数のバイトで表現される数値をどういう順番で扱うか? というのがバイト順だ。

 基本的にすべてのCPUでは、メモリに数値を格納する場合のバイト順が定義されている。メモリアドレスの下から順に位の高いバイトを並べることを「ビッグエンディアン」、位の低いほうから並べるのを「リトルエンディアン」という。ただし、CPUによっては、この2つを切り替えることが可能なものがあり、これを「バイエンディアン」などというが、基本的には動作中はどちらかで動く。

 どちらでも基本的には大きな差はなく、回路の都合や設計者の好みで決まる。現状、Windowsが動作している大半のPCで採用されているx86/x64は、リトルエンディアンで動作する。一方、ARMプロセッサのバイト順は、アーキテクチャの定義では実装定義であるとされており、リトルエンディアン/ビッグエンディアンのどちらか、さらに両方(バイエンディアン)の3パターンが有り得る。つまり、どれに対応するかは設計ごとに決まる。

 ただし、ARM自身が設計したCortex-Aプロセッサは、バイエンディアンという仕様を持つ。また、AArch64(ARMの64bitアーキテクチャ定義)では、プログラム自体は、リトルエンディアンで命令フェッチをすると決められている。Windows ARM64では、Cortex-Aに準拠したクアルコム社のプロセッサを使うが、Windowsではリトルエンディアンとして動作させている。

 データがメモリにある間は、ビッグでもリトルでもどちらでも構わないのだが、ファイルに書き出される場合、それを読む側が必ずしも同じエンディアンであるとは限らない可能性がある。そこで、画像ファイルなどのバイナリの数値を扱う形式では、バイトオーダーを定義するか、あるいは後述するバイトオーダーマーク(BOM)のような仕組みを使って、ファイル書き込み時のエンディアンを判定する方法を取り入れているのが普通である。あるいは数値をテキストで表現することで、エンディアンとは無関係にもできる。たとえばCSV形式では、数値を人間が読むことができるテキストとして表現する。

 エンディアンは、通信のときにも関係する。インターネットの基本となるTCP/IPでは、複数バイトで表現される数値は「ビッグエンディアン」で通信をするとされている。これを「ネットワークバイトオーダー」と呼ぶ。通信であるため、お互い異なるCPUである場合が当然あり、エンディアンを明確に決めておかないと数値の解釈を間違う可能性があるからだ。

 ただし、これはIPアドレスなどのプロトコルなどで定義されている数値の場合で、たとえば、「リトルエンディアン」で記述されたプログラムをネットワークでファイル転送するような場合には、中身はどうでもいいので、わざわざエンディアンを変換して送信するようなことはしない。あくまでもプロトコルとして数値をやりとりする場合のバイト順が「ビックエンディアン」であるということだ。

 また、TCP/IPの場合、バイトは最下位ビット(LSB、Least Significant Bit)から先に送信することになっている。コンピューターのメモリの場合、読み出しと書き込みでビット位置が一致していれば問題ないのでメモリ中のビット並びはどうでもかまわない。しかし、通信ではビット単位でデータを送信することなるため、ビット単位で送信順を定めておく必要がある。

 通信パケットなどを図にする場合、バイト順はビッグエンディアンだが、ビットの並びはLSBからMSB(最上位ビット、Most Significant Bit)を左から右に並べることがある(つまり送信順)。先頭ビットであることを明確にしたい場合にこうした表現になることが多い。MACアドレスであれば、ネットワークオーダーで最初に送られるビットと次のビットにアドレス形式を示す情報が入る。しかし、これを通常のMSBからLSBの順で書くと7ビット目と8ビット目に情報が入っていることになり、少し奇妙な図に見えてしまうからだ。ビット並びを図にする場合、左側にMSBが来る通常の数値の並びに合わせた書き方もあるので、通信関連でビット並びが図になっているときには、LSBとMSBの位置を確認したほうがよい。

 LSB、MSBからエンディアンを考えると、リトルエンディアンとは、数値を構成するビットの最下位ビットを含むバイトを先頭にして並べるバイト順であり、ビッグエンディアンとは、MSBを含むバイトを先頭にして並べる方法である。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,253
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥937
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥841
9
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン