問題タブ [signed-integer]
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のunsigned intとsigned intの違いは何ですか?
次の定義を考慮してください。
それらはどのようにメモリに保存されますか?メモリ内のこれらのビット表現を説明できる人はいますか?
メモリ内で同じビット表現を持つint x=5
ことはできますか?int y=-5
assembly - 符号付きの 1 バイト整数で 128 より大きい数値を格納するにはどうすればよいですか?
Art of Assembly Languageという本を読んでいます。そこでこの段落に出会いました。
HO ビットがゼロの場合、数値は正であり、標準のバイナリ値として格納されます。HO ビットが 1 の場合、数値は負であり、2 の補数形式で格納されます。正の数を負の 2 の補数形式に変換するには、次のアルゴリズムを使用します。
数値のすべてのビットを反転します。つまり、論理
NOT
関数を適用します。反転結果に 1 を加算します。
たとえば、 に相当する 8 ビットを計算するには、次のようにし
/li>-5
ます。
0000 0101
ここで、10 進数で が 5 で、1111 1011 が -5 であるかどうかを知りたいのですが、どのように表すの251
でしょうか? 同じではありません1111 1011
か?コンピューターは -5 と ? をどのように区別し251
ますか?
c - 符号付き整数と符号なし整数の違いは何ですか
符号付き整数と符号なし整数の違いは何ですか?
c++ - ビット単位の演算子と整数の昇格で何が起こっていますか?
私は簡単なプログラムを持っています。サイズが 1 バイトの符号なし固定幅整数を使用していることに注意してください。
私の出力は次のとおりです。
より大きな数値をテストしたところ、オペレーター<<
は常に正の数値を返しますが、オペレーター~
は常に負の数値を返します。それから私は使用sizeof()
して見つけました...
左シフトのビット演算子 (
<<
) を使用すると、符号なしの 4 バイト整数が返されます。ビット単位の not operator(
~
) を使用すると、符号付き 4 バイト整数を受け取ります。
ビットごとの not operator( ~
) は、算術演算子のように符号付き整数昇格を行うようです。ただし、左シフト operator( <<
) は符号なし整数に昇格するようです。
コンパイラが背後で何かを変更していることを知る義務があると感じています。私の分析が正しければ、すべてのビット演算子は 4 バイト整数に昇格しますか? また、署名付きのものと署名なしのものがあるのはなぜですか? 私は困惑している!
編集:常に正の値または常に負の値を取得するという私の仮定は間違っていました。しかし、間違っていたので、以下の素晴らしい回答のおかげで、実際に何が起こっていたのか理解できます.
c++ - SDL_Keycodes が大きすぎて保存できません
SDL 2 で一度に複数のキーを検出する方法を検索しているときに、SDL 1.x の次のコードに出くわしました。
SDL2とaで実装してみましstd::array<bool, 256>
たSegmentation fault: 11
が、upボタンでありました。
それが私がこれを見たときです: https://wiki.libsdl.org/SDLKeycodeLookup。
矢印、機能、記号などを含む「特別な」キーのほとんどは、10 億単位の 10 進数表現を持っています。
単純なコードprintf("%d\n", e.key.keysym.sym);
をオンにしても、上ボタンで次のようになるとします。
エラーコードに違いがある場合、私はMacを使用しています。
では、SDL 2 にはどのような解決策があるのでしょうか?
type-conversion - to_unsigned は何をしますか?
誰かが VHDL のto_unsignedの仕組みを説明したり、私の理解が正しいことを確認したりできますか? 例えば:
ここに私の理解があります:
- -30 は符号付きの値で、1111111111100010 としてビットで表されます
- C の値を作成するには、すべてのビットを反転し、それに「1」を追加する必要があります。
- 0000000000011101+0000000000000001 == 0000000000011111
decimal - バイナリから 16 ビットの符号なし & 16 ビットの符号付きマグニチュード
病気で授業を一日欠席したので、教授を調べました。その日のオンラインの資料と私はこれにこだわっています。彼のメモには、それを行う方法についての説明がありません。質量間の変換 (10 進数から 8 進数、16 進数、2 進数など) はできますが、これはできません。
何か助けはありますか?例は、私がすぐに理解するのに本当に役立ちます。彼のスライドショーの例を投稿します。
病気になっても本当に授業に出るべきだと思います。