問題タブ [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.
language-agnostic - ビッグエンディアンとリトルエンディアンの両方のバイト順序で同じ番号の名前は何ですか?
私の古いクラスメートの一人がちょうど私にこれを尋ねました、そして私は完全に途方に暮れています。グーグルは私にエンディアンネスの多くの定義を与えましたが、この特別な場合の用語ではありません。これには用語さえありますか?
c - リトルエンディアン対ビッグエンディアン
4バイトの整数があり、それを2バイトの短い整数にキャストしたいとしましょう。(リトル エンディアンとビッグ エンディアンの両方で) short integer は、この 4Byte 整数の最下位 2 バイトで構成されるというのは正しいですか?
2 番目の質問:
リトル エンディアンおよびビッグ エンディアン プロセッサでこのようなコードを実行すると、どのような結果になるでしょうか?
ビッグ エンディアン プロセッサの IMHO では最上位 2 バイトがコピーされ、リトル エンディアンでは最下位 2 バイトがコピーされます。
c# - C# エンディアンはセンシティブですか?
C# はエンディアンに敏感ですか? たとえば、次のようなコードになります。
常に同じ値を b に割り当てます。もしそうなら、それはどのような値になりますか?
そうでない場合、ポインターを含むコードの場合、エンディアンに対処するための良い方法は何ですか?
perl - Perlでintを32ビットビッグエンディアンとしてパックするにはどうすればよいですか?
次のスニペットを検討してください。
問題は、別の言語から読み取ろうとすると、これはリトルエンディアンのように見えることです。ビッグエンディアンとして記述できるテンプレート引数はありますか? 読むときに余分な作業をするのは避けたいです。
c - C でのバイトの交換 (エンディアン)
割り当てのためにバイトを交換しようとしていますが、これがその方法だと思いました。
p は反転するスカラー オブジェクトを指します。 size はオブジェクトのバイト数です。
上記の彼に明らかに何か問題がありますか?教授のテスト コードでエラーが発生します。
c# - C#およびビッグエンディアン変換での固定/可変長構造
上記は2つのc++構造です。ここで、SHORTは2バイトで署名されています。それをC#に変換する最良の方法は何でしょうか?
(2番目の構造ではDATAの長さが未定義であることに注意してください。)
私は2つのリンクをたどるのを見てきました。
と
データを構造体に読み込んだ後、短い変数をビッグエンディアンに変換する必要があります。(バイトを反転します)。
c# - プログラミング言語のエンディアン
ええと、「エンディアンネス」のテーマはいつも私には少し混乱していましたが、私が使用したバイナリライター/リーダーのデフォルトの動作について考える必要があるような問題に直面したことはありません。私は今c#でPNGデコーダーを書いています。PNGファイル形式の仕様では、すべての数値はビッグエンディアン表記で格納されると規定されています(これは非常に自然なことです)。ただし、.NETのBinaryReader/Writerがリトルエンディアン表記で動作することに気付いたときは非常に驚きました。私をさらに混乱させたのは、JavaのバイナリIOがビッグエンディアン表記で機能するという事実でした(Javaプログラマーではないので、おそらく私は間違っています)。それで私は次の質問について考え始めました:
1-なぜ現状のままなのか?基本クラスライブラリのデフォルトの動作を意味します。2-.NETのSystem.IOを使用するときに、優先表記を選択する方法がないのはなぜですか?
私は現在JonSkeetの MiscUtilを使用しており、それは魅力のように機能します(thanks、man =))。しかし、この機能を基本クラスライブラリで見るのは素晴らしいことです。
c - SDCC (リトル エンディアン) コンパイラを使用する場合、この演算の何が問題になっていますか?
私は C プログラミングが初めてで、MCU のファームウェア アプリケーションに取り組んでいます。この方法は、KEIL コンパイラ (ビッグ エンディアン) を使用していたときは正常に機能していましたが、SDCC コンパイラ (リトル エンディアン) に切り替えたときに正しく機能しません。誰かが私が間違っていることを説明できますか???
ターゲット デバイスは、8051 アーキテクチャに基づく Silicon Labs C8051F320 です。
追加: まず、MotorSteps と MotorSpeed をunsigned int に変更しました。 私のデバッガーでは、何らかの理由で、この関数 MotorSteps = 00 の最初の入り口で、if ステートメント行にブレークポイントを設定すると、t も 0 に割り当てられるはずですが、デバッガーは t=0.031497 (10 進数) を示します。 )。デバッガーを 16 進数で表示するように切り替えると、t = 0x3d010300 になります。t が割り当てられないようです...
c++ - このプログラムはどのように機能しますか?
0
!!が表示されます。そんなことがあるものか?理由は何ですか?
の振る舞いを研究するために意図的にステートメントに を入れ%d
ましprintf
たprintf
。
png - PNGファイル形式のエンディアン?
エンディアンが正しい言葉かどうかはわかりませんが..
PNG ファイルを解析していて、すべての整数値がビッグ エンディアンであることに気付きました。これは本当ですか?
たとえば、幅と高さは PNG ファイルに 32 ビットの符号なし整数として格納されます。私の画像は16x16で、ファイルには次のように保存されています:
それがいつあるべきか:
これは本当ですか、それとも私が見逃しているものがありますか?