首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-04-26 
在C语言中,什么是位数组在C语言中,什么是位数组[解决办法]只有 C++ 里面 有 吧, bitset[解决办法]C/C++ co

在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

热点排行