うーん...何を望んでいますか?2 の補数表現を使用しているため、単純に次のようになります。
00000011 = 3
00000010 = 2
00000001 = 1
00000000 = 0
11111111 = -1
11111110 = -2
11111101 = -3
11111100 = -4
ワンコンプライアント表現を使用する場合、次のリストがあり、あなたは正しいでしょう:
00000011 = 3
00000010 = 2
00000001 = 1
00000000 = 0
11111111 = -0 <== Watch this!!!
11111110 = -1
11111101 = -2
11111100 = -3
コンピュータービルダーは負のゼロを持たないことを決定したため、2 の補数表現を作成しました。
ビット単位の補数を実行すると、すべてのビットが逆になります。その00000001
結果、11111110
単純に -2 になります (2 の補数を使用する場合)。
否定演算子をお探し-
ですか?
Console.WriteLine(-1);
ところで:補数否定演算子は、補数演算子に1を加えたものと同じです(2補数表現を使用する場合)。
そう:
-x == ~x + 1;
詳細情報: http://en.wikipedia.org/wiki/Signed_number_representations