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

回答編集履歴

1

回答に追記

2021/01/21 04:42

投稿

y_waiwai
y_waiwai

スコア88178

answer CHANGED
@@ -1,1 +1,15 @@
1
- そもそも、x86(やx64)はリトルエンディアンです
1
+ そもそも、x86(やx64)はリトルエンディアンです
2
+
3
+ ---
4
+ ネットワークオーダはビッグエンディアンです。
5
+
6
+ ホストがビッグエンディアンの場合
7
+ htonl  なにもしない
8
+ ntohl なにもしない
9
+ なので、htonl(x) ==ntohl(x) は成立する
10
+
11
+ ホストがリトルエンディアンの場合
12
+ htonl リトル>ビッグの変換
13
+ ntohl ビッグ>リトルの変換、がかかる
14
+ はやいはなし、どっちの関数もエンディアン変換のために同じ操作をしてしまっている、
15
+ ため、htonl(x) ==ntohl(x) は成立してしまいますね