teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

不明確な表現を修正

2016/12/17 10:43

投稿

ikedas
ikedas

スコア4441

answer CHANGED
@@ -5,6 +5,6 @@
5
5
 
6
6
  1バイトずつ並べんだデータを最初から見ていったときに、大きい桁のほうのバイトが最初に現れるのがビッグエンディアン、小さい桁のほうのバイトが最初に現れるのがリトルエンディアンです。
7
7
 
8
- さて、ご質問のコードで`&n`は変数nのアドレスを表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。そを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
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)がわかります。

2

微修正

2016/12/17 10:43

投稿

ikedas
ikedas

スコア4441

answer CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  - `00 01 23 45`の順に並べる (ビッグエンディアンの並べ方)
4
4
  - `45 23 01 00`の順に並べる (リトルエンディアンの並べ方)
5
- 1バイトずつ並べんだデータを最初から見ていったときに、大きい桁のほうのバイトが最初に現れるのがビッグエンディアン、小さい桁のほうのバイトが最初に現れるのがリトルエンディアンです。
6
5
 
7
- ご質問のコドで`&n`は変数nのアドレス表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。それを`(char *)`キャストすれば1バイトのデータ型であ`char`配列として扱えますから、内部的にビッグエンディアンリトルエンディアンのどちらの順序バイトが並んでいるか見ることができます。
6
+ 1バイトずつ並べんだデ最初から見ていったとに、大きい桁のほうのバイトが最初に現れるのビッグエンディアン、小さい桁のほうのバイトが最初に現れるのがリトルエンディアンです。
8
7
 
8
+ さて、ご質問のコードで`&n`は変数nのアドレスを表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。それを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
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)がわかります。

1

微修正

2016/12/17 10:29

投稿

ikedas
ikedas

スコア4441

answer CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
  ご質問のコードで`&n`は変数nのアドレスを表す値ですから、整数であり、複数のバイト (たとえば4バイトや8バイト) で表されます。それを`(char *)`にキャストすれば、1バイトのデータ型である`char`の配列として扱えますから、内部的にビッグエンディアンとリトルエンディアンのどちらの順序でバイトが並んでいるか見ることができます。
8
8
 
9
- 整数`1`を複バイト表すと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)がわかります。
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)がわかります。