介绍
除了我的bit testing functions in C外,这里还有C。
宏
给定一个整数恰好一个 bit设置,它返回一个值,例如所有位少于设置的位,例如,给定的0b00010000
,返回0b00001111
:
#define BITS_LT(N) ((N) - 1u)
鉴于该定义,一个返回一个值的宏,其中所有小于或等于的位均位置为:
#define BITS_LE(N) (BITS_LT(N) | (N))
最后,大于较大的对应物是琐碎的:
#define BITS_GT(N) (~BITS_LE(N))
#define BITS_GE(N) (~BITS_LT(N))