問題タブ [endianness]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1330 参照

python - Rubyのパック関数に相当するPython

古いRubyスクリプトの一部をPythonに変換していますが、Rubyに属するPythonの関数を見つけるのに問題があります: http : //www.ruby-doc.org/core/classes/Array.src/M002222.html-これにより、配列がリトルエンディアンのバイトオーダーに保たれます。私を助けることができるPythonモジュールはありますか?

0 投票する
21 に答える
116009 参照

c - C ビッグ エンディアンまたはリトル エンディアン マシンを決定するマクロ定義は?

マシンのエンディアンを決定するための 1 行のマクロ定義はありますか。次のコードを使用していますが、マクロに変換するには時間がかかりすぎます。

0 投票する
2 に答える
1028 参照

c# - EndianBinaryReader - 入力ストリームの継続的な更新?

Jon Skeet がその他のutils libの一部として書いたEndianBinaryReaderandを使用しようとしています。それは私がそれを作った2つの用途に最適です.EndianBinaryWriter

ネットワーク ストリーム ( TCPClient) からの最初の読み取りでは、入ってくるデータをループで読み取ります。単一のデータを作成してEndianBinaryReader、アプリケーションのシャットダウン時に破棄することができます。EndianBinaryReaderを渡すことでを構築TCPClient.GetStreamします。

UdpClient から読み取るときに同じことを実行しようとしていますが、接続が少ないため、これにはストリームがありません。だから私はそのようにデータを取得します

このデータをメモリストリームに入れることができます

次に、EndianBinaryReader

ただし、これは、読み取りを行うたびに新しいエンディアン リーダーを作成する必要があることを意味します。udpクライアントからのデータで入力ストリームを更新し続けることができる単一のストリームを作成できる方法はありますか?

0 投票する
4 に答える
4893 参照

c++ - C++のファイルのビッグエンディアンとリトルエンディアン

ビッグエンディアンでファイルを書き込むために、プロセッサに依存しないコードを記述しようとしています。以下のコードのサンプルがありますが、なぜそれが機能しないのか理解できません。データの各バイトをビッグエンディアンの順序で1つずつバイトに格納するだけです。実際のプログラムでは、個々のバイトをファイルに書き出すので、プロセッサアーキテクチャに関係なく、ファイルで同じバイト順序を取得します。

何らかの理由で、バイトの値は常に0です。これは私を混乱させます。私はデバッガーを見て、これを確認しています。

データ=00010010001101000101011001111000ビットマスク=11111111000000000000000000000000

データとマスクは00010010を与えると思いますが、毎回バイト00000000になります。どうして彼になれますか?リトルエンディアン順序のコードをいくつか作成しましたが、これはうまく機能します。以下を参照してください。

なぜリトルエンディアンは機能し、ビッグエンディアンは機能しないのですか?助けてくれてありがとう:-)

0 投票する
13 に答える
414831 参照

c - Cでビッグエンディアンをリトルエンディアンに変換する[提供された関数を使用しない]

C でビッグ エンディアンをリトルエンディアンに変換する関数を作成する必要があります。ライブラリ関数を使用できません。

0 投票する
4 に答える
4416 参照

python - Pythonの構造体モジュールを使用してバイトを反転する

この文字列をビッグエンディアンからリトルエンディアンに切り替えたいと思います。

\x00\x40

このようにする:

\x40\x00

使用する適切な関数はstruct.packだと思いますが、適切に機能させる方法が見つかりません。ちょっとした助けをいただければ幸いです。

ありがとう

0 投票する
8 に答える
7097 参照

c++ - C / C ++で64ビット値から32ビットワードを取得し、エンディアンを気にしない

C / C ++では、ビット単位の演算子はエンディアンに依存せず、期待どおりに動作するはずだと私は理解しています。マシンのエンディアンを気にせずに、64ビット値から本当に最も重要な単語と最も重要でない単語を取得していることを確認したいと思います。次に例を示します。

これは機能しますか?

0 投票する
7 に答える
1958 参照

c - エンディアンを気にするのはいつですか?

エンディアンとその意味について数え切れないほどの参考文献を見てきました。私はそれについて何の問題もありません...しかし、私のコーディングプロジェクトは、標準の「ゲーマー」ハードウェアで、LinuxとWindowsで実行する単純なゲームです。この場合、エンディアンを気にする必要がありますか? いつ心配する必要がありますか?私のコードは単純な C と SDL+GL です。複雑なデータは基本的なメディア ファイル (png+wav+xm) だけで、ゲーム データはほとんどが文字列、整数ブール値 (フラグなど)、および静的サイズの配列です。これまでのところ、問題が発生したユーザーはいないので、チェックを追加する必要があるかどうか疑問に思っています (後で実行されますが、IMO にはもっと緊急の問題があります)。

0 投票する
1 に答える
346 参照

c - 数値の特定のビットセットで表される値を抽出する

特定の数のビットの特定のセットによって表される値を抽出する方法。つまり、ビット11、12、および13が1,1,0の場合、値は6である必要があります。

同じことをする最も効率的な方法は何ですか?また、それは一般的でなければなりません。開始ビットと終了ビットの位置を指定でき、開始位置と終了位置の間に存在するビットによって表される値を抽出できる必要があります。

例:00000000 00000000 01100000 00011111

上記の数値の場合、0番目のビットが右端からのものであると考えると、この数値を開始位置として0、終了位置として2を指定すると、値7が得られます。

また、上記の問題についても、エンディアンをどのように処理するのでしょうか。