2017-04-18 10 views
-2

int x = 10;誰もこの出力をどのように得ることができるのか説明できますか? (ビット単位ではない)

System.out.println(〜x);

が//これが印刷されます-11

//手動

+5

私は、あなたには 'not 'の仕組みに関する多くのガイドが存在することを保証します。どの部分を理解することに問題がありますか? – Carcigenicate

+0

手作業で計算する方法 –

+0

それについては?これは非常に広いです。あなたは特定の質問をする必要があります。 – Carcigenicate

答えて

0

は、おそらくこれは、あなたを助け補数算術演算を使用して計算を行う方法:次のように整数のビットをプリントアウトすることができます。そこでは、intが32ビットの値として表されていることがわかります。 bitwise not演算子についての説明は、私が推測するウェブ上で見つけることができます。

int x = 10; 
    System.out.println(Integer.toBinaryString(x)); //00000000000000000000000000001010 
    System.out.println(Integer.toBinaryString(~x)); //11111111111111111111111111110101 
    System.out.println(~x); //-11 
1

これは〜x = - (10 + 1)とみなされる否定演算子です。したがって、出力として-11が得られます。いくつかのCの本を参照してくださいあなたはこれについての詳細な説明を得ることができます

関連する問題