现在暂时我用unsigned char类型来替代bool,因为C语言没有bool嘛。
如果只是保存的话可以每八位变成一个char去储存,但问题是我需要快速访问那些位是0还是1
用与&预算检测.
#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;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。