回答編集履歴
3
不明確な表現を修正
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
1バイトずつ並べんだデータを最初から見ていったときに、大きい桁のほうのバイトが最初に現れるのがビッグエンディアン、小さい桁のほうのバイトが最初に現れるのがリトルエンディアンです。
|
7
7
|
|
8
|
-
さて、ご質問のコードで`&n`は変数nの
|
8
|
+
さて、ご質問のコードで`&n`は変数`n`へのポインタですが、`n`は整数型であり、複数のバイト (たとえば4バイトや8バイト) で表されます。そのポインタを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
|
9
9
|
|
10
10
|
整数`1`は16進数で0x00…01であり、複数バイトで表すと最上位桁のバイトは`00`、最下位桁バイトは`01`となりますから、内部的な並びで最初にくるバイトが00と01のどちらであるかで、[エンディアン](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3)がわかります。
|
11
11
|
|
2
微修正
test
CHANGED
@@ -2,9 +2,10 @@
|
|
2
2
|
|
3
3
|
- `00 01 23 45`の順に並べる (ビッグエンディアンの並べ方)
|
4
4
|
- `45 23 01 00`の順に並べる (リトルエンディアンの並べ方)
|
5
|
-
1バイトずつ並べんだデータを最初から見ていったときに、大きい桁のほうのバイトが最初に現れるのがビッグエンディアン、小さい桁のほうのバイトが最初に現れるのがリトルエンディアンです。
|
6
5
|
|
6
|
+
1バイトずつ並べんだデータを最初から見ていったときに、大きい桁のほうのバイトが最初に現れるのがビッグエンディアン、小さい桁のほうのバイトが最初に現れるのがリトルエンディアンです。
|
7
|
+
|
7
|
-
ご質問のコードで`&n`は変数nのアドレスを表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。それを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
|
8
|
+
さて、ご質問のコードで`&n`は変数nのアドレスを表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。それを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
|
8
9
|
|
9
10
|
整数`1`は16進数で0x00…01であり、複数バイトで表すと最上位桁のバイトは`00`、最下位桁バイトは`01`となりますから、内部的な並びで最初にくるバイトが00と01のどちらであるかで、[エンディアン](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3)がわかります。
|
10
11
|
|
1
微修正
test
CHANGED
@@ -6,5 +6,5 @@
|
|
6
6
|
|
7
7
|
ご質問のコードで`&n`は変数nのアドレスを表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。それを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
|
8
8
|
|
9
|
-
整数`1`
|
9
|
+
整数`1`は16進数で0x00…01であり、複数バイトで表すと最上位桁のバイトは`00`、最下位桁バイトは`01`となりますから、内部的な並びで最初にくるバイトが00と01のどちらであるかで、[エンディアン](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3)がわかります。
|
10
10
|
|