我有一個應用程序,需要操縱nybbles,甚至可能在一次甚至個別位。 C#中有一個庫可以幫助我嗎?操縱Nybbles和更小的C#
1
A
回答
5
您可以使用BitVector32
來操作32位整數中的位,並使用BitArray
來表示一組布爾變量。
而且,它很容易寫了幾個函數來處理各個位:
public bool GetBitValue(int integer, int bit) {
return (integer & (1 << bit)) != 0;
}
public bool SetBitValue(ref int integer, int bit, bool value) {
if (value)
integer |= 1 << bit;
else
integer &= ~(1 << bit);
}
+0
優雅的解決方案,我喜歡它! – ParmesanCodice 2009-09-22 20:43:36
2
庫實際上是不必要的
uint myVar = 257;
const uint SOME_FLAG_A = 256 // 100000000
const uint SOME_FLAG_B = 16 // 000010000
const uint SOME_FLAG_C = 1 // 000000001
if(myVar & SOME_FLAG_A == SOME_FLAG_A)
Console.WriteLine("Bit A is set!");
else
Console.WriteLine("Bit A is not set.");
if(myVar & SOME_FLAG_B == SOME_FLAG_B)
Console.WriteLine("Bit B is set!");
else
Console.WriteLine("Bit B is not set.");
myVar = myVar | SOME_FLAG_B;
if(myVar & SOME_FLAG_B == SOME_FLAG_B)
Console.WriteLine("Bit B is set!");
else
Console.WriteLine("Bit B is not set.");
if(myVar & SOME_FLAG_C == SOME_FLAG_C)
Console.WriteLine("Bit C is set!");
else
Console.WriteLine("Bit C is not set.");
相關問題
- 1. 操縱和Java
- 2. 使用C++和DirectInput的USB操縱桿
- 3. C#操縱視頻
- 4. C++,操縱指針
- 5. 的.htaccess:操縱/更改URLS
- 6. 操縱Unicode和ASCII字符集在C#
- 7. C++字符串和指針操縱
- 8. 什麼是C++操縱器?
- 9. 操縱數據成員(C++)
- 10. 操縱C#密封型
- 11. C++:操縱文件資源?
- 12. 通過c操縱xml#
- 13. 字典操縱在C#
- 14. C++流操作符<<和操縱器/格式化器
- 15. 的NSString操縱
- 16. 存儲值和操縱它
- 17. 操縱和印刷項目
- 18. HTML5畫布和操縱
- 19. 操縱載體和RDDS
- 20. 問題和操縱表達
- 21. 過濾和操縱CurrentImage []
- 22. 操縱列表中的元素-c#
- 23. 帶參數的C++操縱器
- 24. C++ - 操縱STL向量中的對象?
- 25. 如何操縱C中的大數字?
- 26. C++宏:操縱的參數(具體例)
- 27. 用的NSMutableArray和的NSMutableDictionary目標C操縱
- 28. jQuery的CSS操縱
- 29. 操縱中的R
- 30. 的CoffeeScript - 操縱JSON
半字節是一個完全有效的拼寫,但我會刪除多餘的標籤。 – RCIX 2009-09-22 20:38:05
每天學習新東西。但是,nybble與Color不相上下; D – user7116 2009-09-22 20:44:45