打印

PIC单片机位数组定义问题

[复制链接]
914|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2021-3-16 23:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在写c程序时想定义一个位数组,但是苦于不知道如何定义及使用...纳闷好半天,有没有大佬知道要如何用呢?

使用特权

评论回复
沙发
huangchui| | 2021-3-16 23:38 | 只看该作者

typedef union
{
   unsigned char Byte;
   struct
   {
           unsigned char Bit0:1;
           unsigned char Bit1:1;
           unsigned char Bit2:1;
           unsigned char Bit3:1;
           unsigned char Bit4:1;
           unsigned char Bit5:1;
           unsigned char Bit6:1;
           unsigned char Bit7:1;
   }bits;
}BYTE;

使用特权

评论回复
板凳
wyjie| | 2021-3-16 23:40 | 只看该作者
有很多问题,其实baidu一下也会有答案的

使用特权

评论回复
地板
dengdc| | 2021-3-16 23:43 | 只看该作者
定义一个位数组
联合体啊

使用特权

评论回复
5
juventus9554| | 2021-3-16 23:45 | 只看该作者
你可以看,很多头文件里面就有这种用法。

使用特权

评论回复
6
dingy| | 2021-3-16 23:47 | 只看该作者
位段,C语言允许在一个结构体中以位为单位来指定其成员所占内存长度

使用特权

评论回复
7
renyaq| | 2021-3-16 23:49 | 只看该作者
这种以位为单位的成员称为“位段”或称“位域”( bit field) 。

使用特权

评论回复
8
supernan| | 2021-3-16 23:50 | 只看该作者
利用位段能够用较少的位数存储数据。

使用特权

评论回复
9
houcs| | 2021-3-16 23:52 | 只看该作者
struct CHAR
{
    unsigned int ch   : 8;    //8位
    unsigned int font : 6;    //6位
    unsigned int size : 18;   //18位
};
struct CHAR ch1;

使用特权

评论回复
10
pangb| | 2021-3-16 23:54 | 只看该作者
通常, 我们用下面的语句来说明这些变量:
char f1,f2,f3;
unsigned int type;
unsigned int index;

但是, 实际上标志 f1, f2, f3 分别只需要 1 位。变量 type 只需要 4 位, 而变量 index 只需要 9 位。 总共是 16位 ---- 2 个字节。我们用两个字节就够了。

我们可这样来做:
struct packed_struct
{
    unsigned int f1 :1;
    unsigned int f2 :1;
    unsigned int f3 :1;
    unsigned int type :4;
    unsigned int index :9;
};

使用特权

评论回复
11
morrisk| | 2021-3-16 23:56 | 只看该作者
这个 度娘就能解决吧

使用特权

评论回复
12
zhenykun|  楼主 | 2021-3-16 23:58 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
13
奔波儿熊| | 2021-3-17 14:26 | 只看该作者
#define SetBit(A,k)     ( A[(k)/8] |= (1 << ((k)%8)) )
#define ClearBit(A,k)   ( A[(k)/8] &= ~(1 << ((k)%8)) )

uint8_t array[4];
SetBit(array,10);
ClearBit(array,10);

使用特权

评论回复
14
wowu| | 2021-4-2 15:33 | 只看该作者
额 这个很简单

使用特权

评论回复
15
xiaoqizi| | 2021-4-2 15:34 | 只看该作者
定义一个位数组

使用特权

评论回复
16
木木guainv| | 2021-4-2 15:51 | 只看该作者
简单的C语言啊

使用特权

评论回复
17
磨砂| | 2021-4-2 15:59 | 只看该作者
百度一抓一大把啊

使用特权

评论回复
18
晓伍| | 2021-4-2 16:00 | 只看该作者
什么叫做位数组啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝