問題タブ [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.
casting - 2 バイトの配列を単一の short にキャストする際のエンディアン
問題: IBM の記事の抜粋にある数字 256 (2^8) を理解できません:
一方、ビッグエンディアン システムの場合、上位バイトは 1 で、x の値は 256 です。
配列の各要素が 4 バイトを消費すると仮定すると、プロセッサは何らかの方法で 1000 0000 を読み取る必要があります。エンディアンがバイト内のビットに影響しないため、ビッグ エンディアンの場合は 0001 0000 です。【2】記事の256に矛盾!?
質問:数値が 256_dec (=1000 0000_bin) であり、32_dec (=0001 0000_bin) ではないのはなぜですか?
[2] エンディアンの問題は、単一バイトのシーケンスには影響しません。これは、「バイト」がストレージの観点から原子単位と見なされるためです。
endianness - 「IBMPC」のバイトオーダーのエンディアン?
エンディアンに関するウィキペディアの記事を見ましたが、このタイプのバイト順序については何も言及されていません(これは、PhotoshopがRAWファイルを開くときに私に尋ねるものです)。どっち?
c++ - UINT16 値を UINT8 配列に変換する[2]
この質問は基本的に私の他の質問の後半です
ループなしでエンディアンの問題を回避して、UINT16 値を UINT8 * 配列に変換するにはどうすればよいですか。
基本的に私はこのようなことをしたい:
これの最終結果は、エンディアン変換を回避しながら、値を UINT8 配列に格納することです。
UINT16 値を使用して単に memcpy を実行すると、リトルエンディアンに変換され、出力が台無しになります。エンディアン変換関数の使用を避けようとしていますが、運が悪いだけかもしれません。
c - 実行時にマシンのエンディアンを見つけるこの C 関数の何が問題になっていますか?
これは、今日のインタビューで私が提供したものです。
私のインタビュアーは、c
とl
が同じアドレスで開始されるとは限らないため、共用体を say に変更しchar c[sizeof(long)]
、戻り値を に変更する必要があると主張しましたu.c[0] == 1
。
組合のメンバーが同じ住所で始まるわけではないというのは正しいですか?
x86 - DECVAXとIA-32のバイトオーダー
問題の説明は次のとおりです。興味がない場合は、一番下の行にスキップできます。
私はこの説明のあるデータファイルで作業しています:
人間の頭の109スライスMRIデータセット。完全なスライスは、256x256配列として連続して保存されます。ピクセルは、1つの2進整数を構成する2つの連続したバイトで構成されます。シーメンスマグネットで取得され、ニュージャージー州アイセリンのシーメンスメディカルシステムズ社の厚意により提供されたデータ。
その後:
データセットは、Digital Equipment Corporation(DEC)のVAXコンピューターで作成されました。各ファイルにはピクセルのみが含まれ、ピクセルごとに2バイトの整数で行の主要な順序で格納されます。通常のバイト順序(DECは逆バイト順序を使用)のマシンでイメージを使用するには、たとえばUNIXで「dd」コマンドを使用して代替バイトを交換する必要があります。3dkneeデータセットに対してこれを行うサンプルコマンドは次のとおりです。
実際の値がわからないので、バイト順が正しいかどうかだけでは判断できません。
結論
DEC VAXのバイト順序はIA-32と同じですか、それとも逆ですか?
python - エンディアンを決定する最も Pythonic な方法は何ですか?
コードを実行しているマシンがビッグ エンディアンかリトル エンディアンかを判断する最善の方法を見つけようとしています。動作するソリューションがあります (ただし、ビッグ エンディアン マシンでテストしていません) が、少しぎこちないようです。
これは、「ネイティブ」の 2 バイト パックとリトル エンディアン パックを比較しているだけです。もっときれいな方法はありますか?
java - リトル/ビッグエンディアン
OSがJavaのリトルエンディアン/ビッグエンディアンであるかどうかをどのように判断できますか?
c# - ASMでの高速リトルエンディアンからビッグエンディアンへの変換
C#にuint型の配列があります。プログラムがリトルエンディアンのマシンで動作しているかどうかを確認した後、データをビッグエンディアン型に変換したいと思います。データ量は非常に多くなる可能性がありますが、常に均等であるため、パフォーマンスを向上させてASMでプログラムするために、2つのuint型をulong型と見なすことを考えていたので、非常に高速(可能な場合は最速)を探しています。 )リトルエンディアンをビッグエンディアンに変換するアセンブラアルゴリズム。
java - (java)ファイルにリトルエンディアンを書き込む
私はTIFFIFDを書き込もうとしており、次のことを行う簡単な方法を探しています(このコードは明らかに間違っていますが、私が望むもの全体のアイデアを得ることができます):
書くだろう:
0c00 0301 0300 0100 0000 0100 0000
書き込みメソッドが正しいバイト数(writeInt、writeCharなど)を使用するようにする方法は知っていますが、リトルエンディアンで書き込む方法がわかりません。誰か知ってる?