读书人

在C语言中什么是位数组解决方案

发布时间: 2012-04-26 14:01:31 作者: rapoo

在C语言中,什么是位数组
在C语言中,什么是位数组

[解决办法]
只有 C++ 里面 有 吧, bitset
[解决办法]

C/C++ code
#include <limits.h>       /* for CHAR_BIT */  #define BITMASK  (b)    (1 << ((b) % CHAR_BIT))  #define BITSLOT  (b)    ((b) / CHAR_BIT)  #define BITSET   (a, b) ((a)[BITSLOT(b)] |= BITMASK(b))  #define BITCLEAR (a, b) ((a)[BITSLOT(b)] &= ~BITMASK(b))  #define BITTEST  (a, b) ((a)[BITSLOT(b)] & BITMASK(b))  #define BITNSLOTS(nb)   ((nb + CHAR_BIT - 1) / CHAR_BIT)    //#define XOR(a,b) (!!(a) ^ !!(b))  #define XOR(a,b)        (!!(a)!=!!(b))  // 声明一个47位的"数组"  char bitarray[BITNSLOTS(47)];  // 置第23位  BITSET(bitarray, 23);  // 测试第35位  if(BITTEST(bitarray, 35)) ...  // 计算两个位数组的并,再将结果放入另一个数组  for(i = 0; i < BITNSLOTS(47); i++) {      array3[i] = array1[i] | array2[i];  }
[解决办法]
位数组-- 字面意义是每个元素是 bit, 只有 0 和 1

读书人网 >C语言

热点推荐