请教关于位操作 现在有一个很大的多维数组,但是里面存放的不是0就是1所以现在想能不能使用位数组来节省空间请问如何来实现 数组元素类型可以是Bit类型吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不行,不过可以用BYTE来存储,每8个数字保存在一个BYTE的8位中;例如int a[8]={0, 0, 0, 0, 0, 0, 1, 1};可以保存为BYTE bits = 3;// 00000011 BYTE的存储方式是原码吗?如果是补码储存的话就不是3了我也不知道是怎么储存的:) 如下是一个字节的位节构表示方法struct stBIT{unsigned char a0:1; unsigned char a1:1;unsigned char a2:1;unsigned char a3:1;unsigned char a4:1;unsigned char a5:1;unsigned char a6:1;unsigned char a7:1; /*a0~a7取值只能是0或1*/};访问其中某成员:stBIT bitTest;bitTest.a0 = 0;如果sizeof(bitTest)其结果则应1(字节);struct stBIT_11{unsigned char a0:1; unsigned char a1:1;unsigned char a2:1;unsigned char a3:1;};stBIT_11占1字节struct stBIT_12{unsigned char a0:1; unsigned char a1:1;unsigned char a2:1;unsigned char a3:1;unsigned char a4:1;unsigned char a5:1;unsigned char a6:1;unsigned char a7:1; /*a0~a7取值只能是0或1*/unsigned char a8:1;unsigned char a9:1; };stBIT_12类型占2字节 做了一个开源MFC窗口特效及背景皮肤控件,广泛兼容现有界面库 紧急求助!!!!!字符串分割的 VC6下的程序,在VC2005编译通过,为什么界面还是6.0下的,如何让界面变为2005下的? VC删除ACESS数据出错的问题 一个远线程的问题!请高手指教!! 学习中遇到的问题,请教大家一下: @@@@@@@@@@如何使我的折线图随着时间移动@@@@@@@@@@ 初学者求教:返回一个组件的实例!!!(急,在线求教) 在基于CFormView的视图中,如何通过SetDlgItemText()设置另一个对话框中的Edit中的值? 巨难问题,高手迎接挑战吧 预祝水园双星 程序发布注册
可以保存为BYTE bits = 3;// 00000011
如果是补码储存的话就不是3了
我也不知道是怎么储存的:)
struct stBIT
{
unsigned char a0:1;
unsigned char a1:1;
unsigned char a2:1;
unsigned char a3:1;
unsigned char a4:1;
unsigned char a5:1;
unsigned char a6:1;
unsigned char a7:1; /*a0~a7取值只能是0或1*/
};访问其中某成员:
stBIT bitTest;
bitTest.a0 = 0;如果sizeof(bitTest)其结果则应1(字节);
struct stBIT_11
{
unsigned char a0:1;
unsigned char a1:1;
unsigned char a2:1;
unsigned char a3:1;};
stBIT_11占1字节struct stBIT_12
{
unsigned char a0:1;
unsigned char a1:1;
unsigned char a2:1;
unsigned char a3:1;
unsigned char a4:1;
unsigned char a5:1;
unsigned char a6:1;
unsigned char a7:1; /*a0~a7取值只能是0或1*/unsigned char a8:1;
unsigned char a9:1;
};
stBIT_12类型占2字节