問題タブ [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の補数の加算と減算
6ビットの1と2の補数表現を使用して、次の問題を解決しようとしています。
今、私は最初にバイナリで12、バイナリで7を取ります。
次に、2の補数のビットを反転して、1を追加しますか?
次に、これら2つの補数を足し合わせます
今、私が次のような番号を持っている場合
次に、MSBがゼロの場合、符号の大きさを追加しますか?
お気に入り:
ビットを反転する前に、ここの最後に1を追加しますか?
binary - 2の補数、2の補数
2の補数の負の数である2進乗算を学習しようとしています。
これを行う簡単な方法があることを私は知っています。符号拡張と最初の部分積のように。
どうやって続けるのか迷ってしまいました。私がこの時点まで完全に正しかったかどうかさえわかりません。誰かが私にそれを行う方法を段階的に教えてもらえますか?私はそれを他の方法でやりたくない。私がそれをするならば、大きな数が悪いかもしれない伝統的な方法。ありがとうございました
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ますか?
twos-complement - Pythonで〜3が-4に等しいのはなぜですか?
Pythonプログラミングを始めています。私は基本的なチュートリアルを読んでいますが、この点は私にはあまり明確ではありません。あなたが私に与えることができるどんな助けでもありがたいです。
python - Python - 2 の補数を文字列に適用する
文字列で表される 2 進数に 2 の補数を加算しようとしています。文字列が既に反転されていると仮定すると、最後の文字に 1 を「追加」し、必要に応じて文字列内の他の文字を置き換えるにはどうすればよいでしょうか?
例: 100010 は 011101 に反転され、文字列として表されます。2 の補数を 011101 文字列にどのように適用しますか?
この中で私が本当に困惑したのは、ユーザーが 2 の補数を適用するときに多くの桁上げを伴う 2 進数を入力した場合です。
c - Cでの負の数の表現?
Cは負の整数をどのように表しますか?
2の補数表現によるものですか、それともMSB(最上位ビット)を使用したものですか?
-116進数ではffffffff。
だから私のためにこれを明確にしてください。
math - 2 の補数の証明
長さ n のすべてのシーケンスについて、任意の 0 の文字列の 2 の補数が常に 0 になることを帰納法によって証明することは可能ですか?
値式を使用してこれを実行しようとしています。
値 = -a_n-1 x 2^(n-1) + summation{i=0 to n} (a_i x 2^i)、n = 文字列のビット数
language-agnostic - 数値のハードウェア表現に頭を悩ませる: 仮説的な 2 の補数の質問
これは非常に素朴な質問です (私は知っています) が、CPU の基本的な命令セットが実際にどのように実行されるかを検討するための良い出発点になると思います。
2 の補数システムでは、実装で表現できる最大の負数の符号を反転することはできません。これの理論的な理由は、最も負の数の否定が実装の範囲外になるという点で明らかです (範囲は常に
-128 から 127 のようなものです)。
ただし、最も負の数に対して否定演算を実行しようとすると、実際に何が起こるかはかなり奇妙です。たとえば、8 ビット表現では、最も負の数は -128、つまり 2 進数で 1000 0000 です。通常、数値を否定するには、すべてのビットを反転してから 1 を追加します。ただし、これを -128 で実行しようとすると、次のようになります。
あなたが始めたのと同じ番号。このため、ウィキペディアはそれを「奇妙な数」と呼んでいます。
同じウィキペディアの記事では、上記の否定は
最上位ビットへのキャリーがあったが、最上位ビットからのキャリーがなかったため、オーバーフロー状態として検出されました。
だから私の質問はこれです:
A) 一体どういう意味ですか? B) CPU は、
この否定に関連するアクシデントを回避するために、基本的な算術演算を実行するたびに追加のエラー チェック ステップを実行する必要があり、大きなオーバーヘッドが発生するようです。その場合、表現できる数値の範囲を切り捨てて、奇妙な数値を除外しないのはなぜですか (つまり、8 ビットの場合、-127 から 127 まで)。そうでない場合、余分なオーバーヘッドを発生させずにそのようなエラー チェックを実装するにはどうすればよいでしょうか?
c++ - 空き仮想メモリを数える2の補数の数学の行を説明する
WindowsMobile6.x用のVisualStudio2008 C ++アプリケーションがあり、特定のプロセスで使用可能な空き仮想メモリの量をカウントしています。(断片化を考慮に入れていないことに気づきました。)私のコードは基本的に次のようになります。
これが完全に機能しているように見えることを他のAPIで確認できます。私の質問は、この行が何をしているのかです。
なぜこれだけではないのですか?
前の行は、MSFTの従業員であるRossJordanによるUsenetの投稿で見つかりました。
ありがとう、PaulH
編集:
例えば。プロセススロット2の場合、これは、Ross Jordan(RS)アルゴリズムとRegionSize(RS)の両方によって指定された空きメモリの量を含む各空きメモリブロックのリストです。
編集2:
ハンスは私を答えに導きました。これは、これを行うためのすばらしい方法ですが、割り当てサイズが64KBであると想定しています。
c# - なぜC#で-3 ==〜2
理解できません。出力が「等しい」理由
コード:
出力: