問題タブ [ones-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.
c# - リストを比較
和集合 A と B からリストの要素を引いたものを補う方法を知りたいです。これを行う機能はありますか?
c - 補数はフレッチャーのチェックサムに影響を与えますか?
フレッチャーのチェックサムに関するウィキペディアの記事には、次のように記載されています。
Fletcher のアルゴリズムは 1 の補数マシンでは正しくないため、これらの例では 2 の補数演算を想定しています。
この SO の質問は、次のような本からのスキャンを提供します。
加算は modulo 255 (1 の補数演算) で実行されます。
Fletcher のチェックサムは実行中の合計を使用するため、負の数の必要性はわかりません。目的は違いを識別することです。そのため、同じ数のシステム (1 の補数、2 の補数、どちらも) がチェック システムで使用されていない限り、それは問題ですか?ウィキペディアのページにある例では、符号なし整数型も指定されています。
ウィキペディアのページにある例はすべて C で書かれているので、これに C のタグを付けました。私は数学者ではなく、ほとんど有能なプログラマーではないので、補数が影響を与える理由が盲目的に明らかな理由がある可能性は十分にあります。
ones-complement - 符号付きマグニチュードと 1 の補数
10110100
この 8 ビット符号付き 2 進数を符号付きマグニチュード、1 の補数、および 2 の補数に変換する必要がある場所で、この問題を抱えています。
符号付きマグニチュードの場合、値は -76 になりました。
1 の補数の場合、すべてのビットを反転する必要があることがわかっているので、 になります01001011
が、この 1 の補数の最初のビットが 0 であることは、正の数であることを意味します。誰かがこれを前にゼロを付けずに負の1の補数にする方法を説明できますか?
c++ - 1 の補数アーキテクチャでの負のゼロの動作?
1 の補数アーキテクチャで次のコードを検討してください。
- コードはどのような出力を生成しますか?
- 標準で定義されている行、実装に依存する行、および未定義の動作である行はどれですか?
twos-complement - RISC-V は 2 の補数または 1 の補数の符号を義務付けていますか? それとも実装によって決定されますか?
ISA の仕様を調べて、これに対する答えをインターネットで検索しましたが、見つかりませんでした。
RISC-V ISA では、負の数は 1 の補数または 2 の補数で表す必要がありますか? それとも、この決定は実装者に任されていますか?
私が尋ねる理由は、私が RV32I シミュレーターを書いているためです。これは、たとえば、シミュレートされたメモリに負の数を格納する方法に影響します。
binary - 1 の補数での 2 のべき乗の合計
誰もがビル・ゴスパーのこのジョークを聞いたことがあるでしょう:
特定のプログラミング言語がマシンに依存しないという神話は、2 のべき乗の合計を計算することで簡単に破綻します。
- 結果が period = 1 with sign + でループする場合は、符号 - マグニチュード マシンを使用しています。
- 結果が period = 1 at -1 でループする場合は、2 の補数のマシンを使用しています。
- 結果が先頭を含めて周期 > 1 でループする場合は、1 の補数のマシンを使用しています。
- 結果が周期 > 1 でループし、先頭を含まない場合、マシンはバイナリではありません。パターンは基数を示しているはずです。
- メモリが不足している場合は、文字列または Bignum システムを使用しています。
- 算術オーバーフローが致命的なエラーである場合、読み取り専用のファシスト豚がマシンの独立性を強化しようとしています。しかし、オーバーフローをトラップする能力はマシンに依存します。
この戦略によって、宇宙、より正確には代数を考えてみましょう。
X = 2 の累乗の和 = ...111111
X を自分自身に追加します。
X + X = ...111110
したがって、2X = X - 1 したがって、X = -1
したがって、代数は 2 の補数であるマシン (宇宙) 上で実行されます。
他の部分は理解できたと思いますが、補数の部分で行き詰まっています。3 ビットと 1 符号ビットの単純な例を考えてみましょう。
bignum および非バイナリ アーキテクチャの動作は明確です。
結果が period = 1 with sign + でループする場合は、符号 - マグニチュードマシンを使用しています。
2 のべき乗が符号ビットにオーバーフローすると、負のゼロになるので、追加しても何も変わりません。次の反復では、完全に脱落し、 にとどまり、正のゼロを何度も追加しMAXINT
ます。
例:
これは確かに、期間 1 と正の値のループです。
結果が period = 1 at -1 でループする場合は、2 の補数のマシンを使用しています。
2 のべき乗が符号ビットにオーバーフローすると、表現可能な最小の整数が生成されます。それを追加する
例:
案の定、-1 でループします。
結果が先頭を含めて周期 > 1 でループする場合は、1の補数のマシンを使用しています。
それは、わかりません。私はそれが行くべきだと思います:
特に、1 より大きい周期でループする方法がわかりません。これは、2 のべき乗が左シフトによって単純に生成されないことを意味します (そうしないと、最終的に単一の 1 ビットが落ちます)。しかし、それらはどのように計算されますか?
java - ~ は Java で何を意味しますか?
Java プロジェクトで新しいシンボルを見つけましたが、その意味を知りたいですか?
~
この文脈で とはどういう意味ですか?