Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

リトルエンディアンとビッグエンディアンの違いや概要

投稿日:2021年9月12日 更新日:

 

<目次>

(1) リトルエンディアンとビッグエンディアンの違いや概要
 (1-1) 「リトルエンディアン」と「ビッグエンディアン」とは?
 (1-2) どのようなシーンで利用される?

(1) リトルエンディアンとビッグエンディアンの違いや概要

(1-1) 「リトルエンディアン」と「ビッグエンディアン」とは?

「リトルエンディアン」と「ビッグエンディアン」はいずれも、バイナリデータが「メモリにどのような形式で保存されるか?」を表す形式の事です。

●ビッグエンディアン

ビッグエンディアンは、バイナリデータの最も先頭のバイトが最初に格納される方式です。後述のリトルエンディアンに比べ、こちらの方がより直感的な方式です。
 
例えば、次のように16進数のデータ「0x12345678」があった時に、ビッグエンディアンの場合は最も先頭のバイトである「0x12」がメモリの最初に格納され、その後は順番に「0x34」⇒「0x56」⇒「0x78」と続きます。
 
(図111)
 
・ビッグエンディアンの利点
ビッグエンディアンの利点としては、直感的な順番で格納されているため、データの大きさや正負の符号が予測し易いという点です。
 

●リトルエンディアン

リトルエンディアンは、バイナリデータの最も末尾のバイトが最初に格納される方式です(ビッグエンディアンとは逆)。
 
例えば、次のように16進数のデータ「0x12345678」があった時に、リトルエンディアンの場合は最も末尾のバイトである「0x78」がメモリの最初に格納され、その後は順番に「0x56」⇒「0x34」⇒「0x12」と続きます。
 
(図112)
 
・リトルエンディアンの利点
末尾のバイトが最初に格納される性質のため、データの長さが変化した場合でも、「アドレスが変わる事なくアクセス出来る」点が利点となります。これは数値計算等をする際にも有利に働く性質となります。
 
また、末尾のバイトが先頭に来るため、データの長さが分からない場合でもデータを読みやすいメリットがあります。
 

●ポイント

これらはあくまで「メモリ上での保存のされ方」の話であり、リトルエンディアンであろうと、ビッグエンディアンであろうと「0x12345678」が「0x12345678」である事に変わりありません(データ自体はどちらの方式で保存しても変わりません)。
 

(1-2) どのようなシーンで利用される?

●ビッグエンディアンの用途例

TCP/IPプロトコルで使用されている事から、インターネット上でデータを転送する際には「ビッグエンディアン」に変換する必要があるという意味になります。
 
(例)
・TCP/IPプロトコル
・IBM 370メインフレーム
 

●リトルエンディアンの用途例

逆にリトルエンディアンは、前述の計算処理における利点がある事からIntel等のプロセッサで利用されています。
 
(例)
・IntelやAMDのx86_64プロセッサ
 

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

クラウドネイティブとは?(コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ等)

<目次> (1) クラウドネイティブとは?(コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ等)  (1-1) コンテナ  (1-2) サービスメッシュ  (1-3) …

Azure FunctionsのPythonローカル開発をVS Codeで行うためのセットアップ手順

  <目次> (1) Azure FunctionsのPythonローカル開発をVS Codeで行うためのセットアップ手順  (1-1) STEP1:Node.js(含むnmp)のインストー …

APIの難しい部分を吸収し、手軽に検証するためのツール(Postman)をご紹介

  <目次> (1) APIの難しい部分を吸収し、手軽に検証するためのツール(Postman)をご紹介  (1-1) Postmanの概要  (1-2) Postmanの導入手順  (1-3 …

C#でテキストファイルを読み込む方法(サンプルプログラム付き)

  <目次> (1) C#でテキストファイルを読み込む方法(サンプルプログラム付き)  (1-1) 構文  (1-2) 事前準備  (1-3) サンプルプログラム  (1-4) ご参考:使用 …

Slackで自動返信の投稿をするボットをPythonで作る手順(ngrokでローカルPCをサーバーに見立てて)

  <目次> (1) Slackで自動返信の投稿をするボットをPythonで作る手順(ngrokでローカルPCをサーバーに見立てて)  (1-1) STEP1:Slackアプリの新規作成&権 …

  • English (United States)
  • 日本語
Top