c语言的bit类型

我的题目要求我讲字符编码(二进制,长度不一定),然后进行储存(文件形式)。所以我想问下c语音那有没有bit类型,可以直接对它进行0和1的赋值。//以下可以不看我的原本想法... 我的题目要求我讲字符编码(二进制,长度不一定),然后进行储存(文件形式)。
所以我想问下c语音那有没有bit类型,可以直接对它进行0和1的赋值。
//以下可以不看
我的原本想法是通过编码得到int型的0和1,然后手动进行二进制转十进制操作,得到一个int型的
十进制数,并强制转化成8位的char型进行储存。但有一个bug,最后的时候编码可能不满8位,算法就会出错。。
求高手帮忙
展开
 我来答
zhxiufan
2015-10-10 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
C语言中bit类型是“位”数据类型,一般在嵌入式软件中应用较多,用于IO口的控制,可以是单独申明位变量,也可以申请位结构数据类型,比如:

struct st_flash {                                           /* struct FLASH */

                union {                                       /* FLMCR1       */

                      unsigned char BYTE;            /*  Byte Access */

                      struct {                                  /*  Bit  Access */

                             unsigned char FWE :1;      /*    FWE       */

                             unsigned char SWE1:1;      /*    SWE1      */

                             unsigned char ESU1:1;      /*    ESU1      */

                             unsigned char PSU1:1;      /*    PSU1      */

                             unsigned char EV1 :1;      /*    EV1       */

                             unsigned char PV1 :1;      /*    PV1       */

                             unsigned char E1  :1;       /*    E1        */

                             unsigned char P1  :1;       /*    P1        */

                             }      BIT;  

                      }         FLMCR1;  

                union {                                 /* FLMCR2       */

                      unsigned char BYTE;               /*  Byte Access */

                      struct {                                     /*  Bit  Access */

                             unsigned char FLER:1;      /*    FLER      */

                             unsigned char SWE2:1;      /*    SWE2      */

                             unsigned char ESU2:1;      /*    ESU2      */

                             unsigned char PSU2:1;      /*    PSU2      */

                             unsigned char EV2 :1;      /*    EV2       */

                             unsigned char PV2 :1;      /*    PV2       */

                             unsigned char E2  :1;      /*    E2        */

                             unsigned char P2  :1;      /*    P2        */

                             }      BIT; 

                      }         FLMCR2;  

                union {                                 /* EBR1         */

                      unsigned char BYTE;               /*  Byte Access */

                      struct {                          /*  Bit  Access */

                             unsigned char EB7:1;       /*    EB7       */

                             unsigned char EB6:1;       /*    EB6       */

                             unsigned char EB5:1;       /*    EB5       */

                             unsigned char EB4:1;       /*    EB4       */

                             unsigned char EB3:1;       /*    EB3       */

                             unsigned char EB2:1;       /*    EB2       */

                             unsigned char EB1:1;       /*    EB1       */

                             unsigned char EB0:1;       /*    EB0       */

                             }      BIT; 

                      }         EBR1;

                union {                                 /* EBR2         */

                      unsigned char BYTE;               /*  Byte Access */

                      struct {                          /*  Bit  Access */

                             unsigned char EB15:1;      /*    EB15      */

                             unsigned char EB14:1;      /*    EB14      */

                             unsigned char EB13:1;      /*    EB13      */

                             unsigned char EB12:1;      /*    EB12      */

                             unsigned char EB11:1;      /*    EB11      */

                             unsigned char EB10:1;      /*    EB10      */

                             unsigned char EB9 :1;      /*    EB9       */

                             unsigned char EB8 :1;      /*    EB8       */

                             }      BIT;   

                      }         EBR2; 

};

百度网友4a058873bd
2014-04-20 · TA获得超过164个赞
知道小有建树答主
回答量:170
采纳率:100%
帮助的人:142万
展开全部
没有bit类型,你原来的思路是可以的,只是没有做一个事情“不够8位补齐”这个事情而已。
追问
那好,我可以理解为所有文件都是最低以8位为一个单位来储存的吗
追答
是的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fa09700
2015-09-21 · TA获得超过415个赞
知道小有建树答主
回答量:266
采纳率:85%
帮助的人:134万
展开全部
bit数据的最小结构,1byte = 8bit。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式