1

仮定: 2 の補数、整数。簡単な質問です。なぜ a に数値があり、その NOT を取ると、負の + または - 1 になるのはなぜですか。たとえば、次のようになります。

553481923
~553481923 = -553481924
2147455726
~2147455726 = -2147455727
-2147455725
~-2147455725 =2147455724

ビットが反転していることがわかりました。これには何か理由があるのでしょうか、それともただの偶然でしょうか。

4

2 に答える 2

0

これは、2 の補数系で 1 つの追加の負の値を表現できるためです00000000。つまり、表現できるすべての正の数 ( まで01111111) のうち、1 余分なビットが不足することになります。一方、10000000負の数として取得します。(私はバイトを使用してきましたが、これは任意の長さの単語に適用されます。)

https://stackoverflow.com/a/1049774/691859

于 2013-06-20T23:00:22.357 に答える