タグ付けされた質問 「endianness」

29
C ++プログラムでのプログラムによるエンディアンの検出
ビッグエンディアンまたはリトルエンディアンのアーキテクチャを使用しているかどうかをプログラムで検出する方法はありますか?IntelまたはPPCシステムで実行され、まったく同じコードを使用できる(つまり、条件付きコンパイルがない)コードを記述できる必要があります。

30
C ++でビッグエンディアンとリトルエンディアンの値を変換するにはどうすればよいですか?
C ++でビッグエンディアンとリトルエンディアンの値を変換するにはどうすればよいですか? 編集:わかりやすくするために、1つのCPUアーキテクチャから別のCPUアーキテクチャにバイナリデータ(倍精度浮動小数点値と32ビットおよび64ビット整数)を変換する必要があります。これはネットワーキングを含まないため、ntoh()および類似の関数はここでは機能しません。 編集#2:私が受け入れた答えは、対象としているコンパイラに直接適用されます(そのため、私はそれを選択しました)。ただし、他にも非常に優れた、より移植性の高い答えがあります。
196 c++  endianness 

5
ビットシフトはエンディアンに依存しますか?
私が'numb'=1025 [00000000 00000000 00000100 00000001]表されている数を持っていると仮定します: リトルエンディアンマシンの場合: 00000001 00000100 00000000 00000000 ビッグエンディアンマシンの場合: 00000000 00000000 00000100 00000001 ここで、左シフトを10ビットに適用すると(つまり、numb << = 10)、次のようになります。 [A]リトルエンディアンマシンの場合: GDBで気付いたように、リトルエンディアンは左シフトを3ステップで実行します。[処理のみを理解するために「3」ステップを示しました] いいえを扱います。ビッグエンディアン条約: 00000000 00000000 00000100 00000001 左シフトを適用: 00000000 00010000 00000100 00000000 結果をリトルエンディアンで再度表します。 00000000 00000100 00010000 00000000 [B]。ビッグエンディアンマシンの場合: 00000000 00010000 00000100 00000000 私の質問は: リトルエンディアンコンベンションに直接左シフトを適用すると、次のようになります。 numb: 00000001 00000100 00000000 00000000 numb << …
156 c  endianness 

8
Javaでバイト配列を整数に、またはその逆に変換します
Javaでバイト配列にデータを格納したい。基本的に、数値ごとに最大2バイトを使用できる数値のみ。 整数を2バイトの長さのバイト配列に、またはその逆に変換する方法を教えてください。私は多くの解決策をグーグルで見つけましたが、それらのほとんどはコードで何が起こるかを説明していません。よくわからないことがたくさんあるので、基本的な説明をお願いします。
139 java  types  endianness 


8
Javaは整数をリトルエンディアンまたはビッグエンディアンで読み取りますか?
CプロセスからJavaにバイトストリームを送信しているので、質問します。C側では、32ビット整数はLSBが最初のバイトで、MSBが4番目のバイトです。 だから私の質問は:Java側で、Cプロセスから送信されたバイトを読み取るとき、Java側のエンディアンは何ですか? 追加質問:Java側のエンディアンが送信されたエンディアンと異なる場合、どうすればそれらを変換できますか?
94 java  endianness 

13
Cでビッグエンディアンをリトルエンディアンに変換[提供された関数を使用せずに] [終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 7年前休業。 この質問を改善する Cでビッグエンディアンをリトルエンディアンに変換する関数を記述する必要があります。ライブラリ関数を使用できません。
91 c  swap  endianness 


1
network-byte-orderがビッグエンディアンとして定義されているのはなぜですか?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 7年前に閉鎖されました。 見出しに書かれているように、私の質問は、TCP / IPがデータを送信するときにビッグエンディアンエンコーディングを使用し、代替のリトルエンディアンスキームを使用しないのはなぜですか?

7
C / C ++:ビットフィールドの順序と配置を強制する
構造体内のビットフィールドの順序はプラットフォーム固有であると読みました。異なるコンパイラ固有のパッキングオプションを使用した場合、データが書き込まれるときに正しい順序で保存されることが保証されますか?例えば: struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int id : 5; unsigned int data : 6; } __attribute__ ((__packed__)); GCCコンパイラを搭載したIntelプロセッサでは、フィールドは示されているようにメモリに配置されていました。Message.versionバッファの最初の3ビットであり、Message.typeその後に続きます。さまざまなコンパイラで同等の構造パッキングオプションを見つけた場合、これはクロスプラットフォームになりますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.