我有一个应用程序,需要操纵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