問題タブ [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.
python - Python における整数のエンディアン
一部のデータを整数に格納し、ビットごとに処理するプログラムに取り組んでいます。たとえば、48 という数字を受け取った場合、それをビットごとに処理します。一般に、整数のエンディアンは整数のマシン表現に依存しますが、Python は int が常にリトルエンディアンであることを保証するために何かをしますか? それとも、C の場合のようにエンディアンをチェックしてから、2 つのケースに対して別々のコードを記述する必要がありますか?
私のコードは Sun マシンで実行されているため、現在は Intel プロセッサを使用していますが、将来的に Sun プロセッサを搭載したマシンに切り替える必要があるかもしれません。
endianness - ビッグ エンディアンからリトル エンディアンに変換する手順はどれくらいですか?
ビッグ エンディアンからリトル エンディアンに変換する手順はどれくらいですか?
c++ - C / C ++:ビットフィールドの順序と配置を強制する
構造体内のビットフィールドの順序はプラットフォーム固有であることを読みました。異なるコンパイラ固有のパッキングオプションを使用する場合はどうなりますか?これにより、データが書き込まれるときに正しい順序で保存されることが保証されますか?例えば:
GCCコンパイラを搭載したIntelプロセッサでは、フィールドは示されているようにメモリに配置されていました。Message.version
バッファの最初の3ビットであり、その後にMessage.type
続きます。さまざまなコンパイラに相当する構造体パッキングオプションが見つかった場合、これはクロスプラットフォームになりますか?
c# - BinaryWriter エンディアンの問題
BinaryWriter クラスを使用して、バイナリ ファイルをディスクに書き込みます。Write メソッドを呼び出して unsigned short 値を渡すと、それがリトル エンディアン形式で書き込まれます。例えば:
値をバイナリ ファイルに 0x00 0xA0 として書き込みます。BInaryWriter でビッグ エンディアンを使用する方法はありますか? そうでない場合、BinaryWriter を継承して新しいクラスを作成し、Write 関数をオーバーロードしてビッグ エンディアンを書き込むようにすることは可能ですか?
ascii - ASCII 文字はどのようにメモリに格納されますか?
ビッグ エンディアン方式に従って 32 ビット ワードで構成されたバイト アドレス指定可能なメモリを備えたコンピュータを考えてみましょう。プログラムは、キーボードで入力された ASCII 文字を読み取り、位置 1000 から始まる連続したバイト位置に格納します。名前「johnson」が入力された後の位置 1000 と 1004 にある 2 つのメモリ ワードの内容を表示します。
c - ASCII 文字列とエンディアン
私と一緒に働いているインターンは、エンディアンの問題についてコンピューター サイエンスで受けた試験を見せてくれました。ASCII 文字列 "My-Pizza" を示す問題があり、学生はその文字列がリトル エンディアンのコンピューターのメモリでどのように表現されるかを示さなければなりませんでした。もちろん、ASCII 文字列はエンディアンの問題の影響を受けないため、これはひっかけ問題のように思えます。
しかし衝撃的なことに、インターンは、彼の教授が文字列は次のように表現されると主張していると主張しています。
私はこれが正しくないことを知っています。どのマシンでも、ASCII 文字列をそのように表現する方法はありません。しかしどうやら、教授はこれを主張している。そこで、私は小さな C プログラムを作成し、インターンに教授に渡すように言いました。
これは、文字列が「My-Pizza」としてメモリに保存されていることを明確に示しています。1 日後、インターンが私に戻ってきて、その教授は現在、C がアドレスを自動的に変換して適切な順序で文字列を表示していると主張していると教えてくれました。
私は彼に彼の教授は正気ではないと言いましたが、これは明らかに間違っています。しかし、ここで自分の正気を確認するために、これをstackoverflowに投稿して、他の人に自分の言っていることを確認してもらうことにしました.
だから、私は尋ねます:ここにいるのは誰ですか?
c++ - constexprとエンディアン
C ++プログラミングの世界で時々出てくる一般的な質問は、コンパイル時のエンディアンの決定です。通常、これはほとんど移植性のない#ifdefで行われます。しかし、C ++ 11constexpr
キーワードとテンプレートの特殊化は、これに対するより良い解決策を提供しますか?
次のようなことを行うのは合法的なC++11でしょうか?
次に、両方のエンディアンタイプのテンプレートを特殊化します。
そして、次のことを行います。
c# - 配列内のバイトをC#のビッグエンディアンからリトルエンディアンにスワップする高速な方法
ビッグエンディアンのバイナリストリームから読み取っています。BitConverterクラスはこれを自動的に行います。残念ながら、必要な浮動小数点変換はBitConverter.ToSingle(byte [])と同じではないため、同僚からの独自のルーチンがあります。ただし、入力byte[]はリトルエンディアンである必要があります。byte[]配列のエンディアンを変換する高速な方法はありますか。もちろん、各バイトを交換することはできますが、トリックが必要です。ありがとう。
c - C エンディアン変換 : ビットごと
私は特別な unsigned long (32 ビット) を持っており、そのエンディアンを少しずつ変換する必要があります。私の long は、すべてが 1 つのバイナリにまとめられた複数のものを表します。
どうすればいいのですか?