数値(たとえば9)を32 int(00000000000000000000000000001001)に変換してから、すべてのビット(11111111111111111111111111110110)を反転させる方法が不思議です。私は文字列内の数字を置き換えることによってそれを行う方法を知っていますが、私はバイナリ演算子でそれを行う方法を知る必要があります。私はあなたがこれを使用しなければならないと思う、 "〜"、しかし、それは私が値に使用するときに私に負の数を与えます。cのバイナリ演算子を使用して32ビットすべてを反転する#
答えて
数字の小数点を見ると、負の数です。 それを符号なしのintとして宣言すれば、それは正の整数になります。 しかし、このdoesntの物、それは常に11111111111111111111111111110110. これを試してみてくださいになりますバイナリ:
int number = 9;
Console.WriteLine(Convert.ToString(number, 2)); //Gives you 1001
number = ~number; //Invert all bits
Console.WriteLine(Convert.ToString(number, 2));
//Gives you your wanted result: 11111111111111111111111111110110
これは正しい機能を実行しています。 C#内のint
データ型は符号付き整数を使用するため、実際には11111111111111111111111111110110は負の数です。
マークが指摘したように、符号なしの値を使用する場合は、番号をuint
と宣言します。
「C#は符号付き整数を使用しています。より正確には、C#は、signed( 'sbyte'、' short'、 'int'、' long')またはunsigned( 'byte'、' ushort'、 'uint'、' ulong')整数のいずれかを簡単に使用できるようにします。 –
@MarcGravell本当、私はintを意味しました。 – Peter
- 1. Pythonで反転セット演算子を実際に使用する
- 2. Cビット演算子の例
- 3. ビット演算子を使用したパターン
- 4. ビット演算を使用してC#を比較します。
- 5. バイナリ演算子C++オーバーロード
- 6. Pythonでブール演算子を使用するためのビット演算子のオーバーロード
- 7. ビット単位のAND演算子を使用してJavaに「&」
- 8. Netbeansが私のJavaコードの「バイナリ演算子のオペランドを反転する」ことを提案している
- 9. ビット演算子を使用してCの符号なし整数からビットを分離する方法は?
- 10. Pythonのビット演算子 '&' 演算子
- 11. ビット演算子
- 12. C++のビット演算子を使って一致する色を見つける
- 13. ビット演算子または演算子|メモリブロックを整列するためのCの使用
- 14. バイナリ%演算子の反復数を取得する
- 15. Cのバイナリをcharで受け取るビット単位の演算
- 16. ビット演算子 - C++とJavaの違い
- 17. ビット演算| = C
- 18. ビット演算子Deuces
- 19. は、ビット演算子
- 20. cの1の補数〜演算子は正しくビットを反転しませんか?
- 21. 32ビット整数のRotateLeft演算
- 22. ビット単位の演算子を使用して整数に5を掛ける
- 23. 32ビットの符号なしintビットの数字を反転する
- 24. HQLでビット演算子を使用するには?
- 25. .at演算子を使用しているエラーopenCV(C++)
- 26. バイナリ演算子のオーバーロード
- 27. テンプレートクラスのバイナリ演算子オーバーロード
- 28. ドット演算子を使用してhasOwnPropertyを使用する
- 29. 演算子( - - )()演算子C#
- 30. Erlangのbitwise bnot演算子を使用したビット操作
unsigned int型を使用します。 –
'int' ***として' 11111111111111111111111111110110'は***です。 '〜val'は正しいです。あなたが署名したくないのであれば、 'uint'を使用してください。 –