0

リトル エンディアンとビッグ エンディアンは理解できますが、「マシン バイト オーダー」とはどういう意味ですか?

4

1 に答える 1

5

パックでは、「マシン バイト オーダー」というフレーズは、エンディアンが現在のマシンによって決定されることを意味します1

PHP 自体は、そのような文字 ( 、など) がデータをエンコードするエンディアンを保証しません。ただし、順序が現在のマシンに関連する場合を除きます。SL

したがって、「マシン バイト オーダー」パック文字の使用には注意が必要であり、疑いがある場合は、順序保証された対応する部分 (nなど) を検討してください1。ただし、 [Microsoft] UUID のようないくつかのばかげた形式は「マシン バイト オーダー」の観点からレイアウトされているため、ターゲット データの仕様に注意してください。他の形式は常にビッグ エンディアンまたは常にリトル エンディアンです。v


1 x86/x64 は常にリトル エンディアンですが、PHP はビッグ エンディアンのマシンでも技術的に実行できます。コードが後で突然不可解に「動作を停止」することを避けるために、明示的かつ正確であるという習慣を身に付けることが最善です。

于 2012-09-14T19:26:22.893 に答える