c中的位恒定宏
#c #cpp

介绍

除了我的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))