hur.cn - 华软网

 热门搜索

关于位变量

  作者:未知    来源:网络    更新时间:2011/6/25
有 unsigned char tt:1 为位变量,但如何定义位的数组变量啊,大家说说
---华软 网友回答---
位域不能有间接寻址,不能定义的
---华软网友回复---
直接定义不行。

你可以变通一下,定义一个类,重载 []操作符。 然后自己处理get 和 set 操作逻辑


---华软网友回复---
c语言里面只能自己手动做位运算。c++里面有bit map 可以用。
---华软网友回复---
//用union和结构:
struct Bits
{
BYTE bit0:1;
BYTE bit1:1;
BYTE bit2:1;
BYTE bit3:1;
BYTE bit4:1;
BYTE bit5:1;
BYTE bit6:1;
BYTE bit7:1;
};

union Status
{
BYTE all;
struct Bits bit;
};
//测试代码
union Status status;
status.all=0xAA;
if(status.bit.bit0) afxDump << "Bit 0\n";
if(status.bit.bit1) afxDump << "Bit 1\n";
if(status.bit.bit2) afxDump << "Bit 2\n";
if(status.bit.bit3) afxDump << "Bit 3\n";
if(status.bit.bit4) afxDump << "Bit 4\n";
if(status.bit.bit5) afxDump << "Bit 5\n";
if(status.bit.bit6) afxDump << "Bit 6\n";
if(status.bit.bit7) afxDump << "Bit 7\n";

---华软网友回复---
操作系统也常常会用到位图,如图像位图、磁盘卷位图,信号位图. 对于有很多位的情况,一般都是定义成连续存放的字节数组,再对数组中的字节作位运算。
---华软网友回复---
使用 bitset不是更方便吗
---华软网友回复---
楼上是明白人
---华软网友回复---
bitset是MFC,这种包装其实不直接。
---华软网友回复---
有什么实际需求么?
C和C++操作位不是很方便
---华软网友回复---
TI DSP 中的C代码,用union很多。
---华软网友回复---
我觉得写个位操作的类更好吧。
---华软网友回复---
这个问题确实有点深度阿

---华软网友回复---
。。stl情何以堪
引用 8 楼 schlafenhamster 的回复:
bitset是MFC,这种包装其实不直接。
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。