基于数组的位运算1 数组位的基本运算

这篇博客介绍了如何使用C语言进行位运算操作数组,包括设置、清除、翻转和测试数组中的特定位。博客中提供了针对不同大小的数组元素类型的宏定义以及模板函数的实现方式。
摘要由CSDN通过智能技术生成

typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;


//vc ++ 6.0 不支持long long
//linux gcc  不支持__int64
#ifdef _MSC_VER
    typedef __int64 int64;
    typedef unsigned __int64 uint64;
    typedef int64 ltype;
#else
    typedef long long int64;
    typedef unsigned long long uint64;
    typedef uint64 ltype;
#endif

 

//数组类型
# define MOVE  3
# if MOVE == 3
 typedef uchar utype;
# elif MOVE == 4
 typedef ushort utype;
# elif MOVE == 5
 typedef uint utype;
# elif MOVE == 6
 typedef uint64 utype;
# endif


//设置宏, 确保数组a与BITARRAY_TYPE 设置一致
# define MASK_N(n)         (1 << ((n) & MASK))
# define SET_BIT(a, n)     a[(n) >> MOVE] |= MASK_N(n)  //设数组a的第n个bit位1
# define CLR_BIT(a, n)     a[(n) >> MOVE] &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值