問題タブ [twos-complement]
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.
binary - 「2の補数」とは?
私はコンピューター システムのコースにいて、部分的に2 の補数に苦労しています。私はそれを理解したいと思っていますが、私が読んだすべてが私のために絵をまとめていません. ウィキペディアの記事や、テキストブックを含む他のさまざまな記事を読みました。
したがって、このコミュニティ wiki投稿を開始して、2 の補数とは何か、それを使用する方法、およびキャスト (符号付きから符号なしへ、またはその逆)、ビットごとの操作、ビットシフト操作などの操作中に数値にどのように影響するかを定義したいと思いました。 .
私が望んでいるのは、プログラマーが簡単に理解できる明確で簡潔な定義です。
binary - 符号付き数値の符号と大きさよりも2の補数を好むのはなぜですか?
-1を2進数で表すために、2の補数が使用される理由があるかどうか、私はただ興味があります。ビットを反転して1を加算しますか?
-1は、最初のビットが負のフラグであるバイナリ1である10000001ではなく(私にとってはより直感的に)11111111(2の補数)で表されます。
免責事項:私は自分の仕事を2進演算に依存していません!
binary - 2 の補数の例、キャリーしてみませんか?
David Malan ( here ) によるバイナリについてのすばらしい講義を見ています。彼は、符号付き/符号なし、1 の補数、および 2 の補数表現について話しました。次のように並んだ 4 + (-3) の追加が行われました。
しかし、彼は魔法の手を振って、最後のキャリーを投げ捨てました。私はいくつかのウィキペディアの調査を行いましたが、それがよくわかりませんでした.誰かがその特定のキャリー(8の-> 16の列で)がドロップされた理由を説明できますが、彼はその直前のものを保持しましたか?
ありがとう!
java - バイト b = (バイト) 0xFF が整数 -1 に等しいのはなぜですか?
byte b = (byte) 0xFF
が に等しいのはなぜinteger
-1
ですか?
元:
それは印刷されます-1
か?
java - ビット単位の否定演算子
なぜビット演算(~0);
は -1 を出力するのですか? バイナリでは、0 を 1 にする必要はありません。なぜ ?
c - C - 2 の補数に変換
このようにすることにしました
- フリップ番号 0=1、1=0
- LSBに1を加算
- キャリーの場合、array[i]==0 までループ
しかし、私は最後の点で立ち往生しています。条件付きループでそれをどのように言うことができますか?
c# - 2 バイトを数値に変換する
バイト配列を持つコントロールがあります。
ときどき、配列内の将来の項目数に関する情報を伝える 2 バイトがあります。
例として、私が持つことができる:
この値は明らかに 7 です。
しかし、これはどうですか?
それが(通常のintとして)何に相当するかについて何か考えはありますか?
私はバイナリに行き、1792 に等しい 11100000000 かもしれないと考えました。
テストせずにこれを知る方法はありますか?
注: C# 3.0 と Visual Studio 2008 を使用しています