問題タブ [uint32-t]
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.
c - Cの文字列にuint32_tを出力しますが、文字通りの値ではありません
画像ファイルを読み込んでおり、圧縮された形式をコンソールに表示したいと考えています。
たとえば、私はこれを読みました:format = 861165636 (0x33545844)
私の CPU はリトル エンディアンで読み書きするformat = __builtin_bswap32(format);
ので、今format = 1146639411 (0x44585433)
は0x44585433 = "DXT3"
ASCII で読み書きします。
これ(「DXT3」)を印刷したいのですが、追加の変数は使用しません。つまり、このようなものですprintf("Format: %s\n", format);
(明らかにクラッシュします)。それを行う方法はありますか?
type-conversion - uint32_t - long が < 0 の場合とそうでない場合があるのはなぜですか?
次のスクリプトを Godbolt (gcc 11.2) で 1 回、esp32 (xtensa gcc) で 1 回実行しました。Godbolt バージョンは "hello" を出力しませんが、ローカルの esp32 バージョンは出力します。何故ですか?
Godbolt の xtensa も「hello」を出力しないため、コンパイラに依存しているようには見えません。それは私が違いの要因が何であるか疑問に思う.
に変更すると機能するので、型変換と関係があると思います
そのため、あるケースではサブゼロの縮小変換があるようですが、他のケースではそうではありません。これは説明できません。