C语言中如何最节省地保存0,1的一个长队列?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

C语言中如何最节省地保存0,1的一个长队列?

a123456678 2016-06-07 20:05:10 1541

现在暂时我用unsigned char类型来替代bool,因为C语言没有bool嘛。
如果只是保存的话可以每八位变成一个char去储存,但问题是我需要快速访问那些位是0还是1

C语言
分享到
取消 提交回答
全部回答(5)
  • 游客x4uu57rrcwjuo
    2020-03-19 10:52:21

    unsigned char类型类型数组吧,数组每个元素保存8个0或1

    0 0
  • 一生有你llx
    2019-07-17 19:30:56

    unsigned char类型类型数组吧,数组每个元素保存8个0或1

    0 0
  • nothingfinal
    2019-07-17 19:30:56

    unsigned char类型类型数组吧,数组每个元素保存8个0或1

    0 0
  • xumaojun
    2019-07-17 19:30:56

    unsigned char类型类型数组吧,数组每个元素保存8个0或1

    0 0
  • a123456678
    2019-07-17 19:30:56

    用与&预算检测.

    #include <stdio.h>
    
    // 检测定义成一个宏
    #define IS_SET(ch, idx) ((ch) & (0x01<<(idx)))
    
    int main()
    {
        unsigned char ch = 0x14; // 二进制 0001 0100;
        // 从右往左, 第三位(下标从0开始, 所以程序里是2)是1吗?
        if (IS_SET(ch, 2)) {
            printf("YES\n");
        } else {
            printf("NO\n");
        }
    
        return 0;
    }
    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程