作业帮 > 综合 > 作业

C51没有bit型的数组,如果我想定义一个含有17个变量(取值为0,1)的一维数组,unsigned char 浪费,咋

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 07:03:37
C51没有bit型的数组,如果我想定义一个含有17个变量(取值为0,1)的一维数组,unsigned char 浪费,咋办?
好像有人说可以用结构体来搞,该怎么搞,小弟是菜鸟,
要想节省单元,只好浪费一点计算时间.
1个unsigned char 用于8个变量.17个变量要
开3 个单元 unsigned char,(或开一个unsigned long),
自己用 位运算,左移右移,赋值和取值.
再问: 首先谢谢您啊,不好意思啊,用15个变量就可以了,我是针对单片机编程的,扫描15个按键,每个变量代表一个标志位可取0,1,采用位运算的话有些很长,能不能用数组方法来搞定它,像定义一个bit key_flag[15] 数组,比如对应的数字按键1按下,key_flag[0]=1, 按键1按下key_flag[1]=1,,,,,,,按键i 按下key_flag[i-1]=1,这样我好处理一些,,给怎么定义一些好呢
再答: 15个变量 用2个 unsigned char ,用位运算,左移右移,赋值和取值。 ---- C++ 结构 bit 定义例子: struct Date { unsigned nWeekDay : 3; // 0..7 (3 bits) unsigned nMonthDay : 6; // 0..31 (6 bits) unsigned nMonth : 5; // 0..12 (5 bits) unsigned nYear : 8; // 0..100 (8 bits) }; 冒号后面是几个 bits。 你用1bit,和15个成员变量。 但C51是否支持我不知道。