❤️️💚💙💛🧡💜🖤🤍🧡
大家好!我是曾续缘🥰
欢迎关注💕
❤️点赞 👍 收藏 ⭐再看,养成习惯
🔥📚
__builtin内置函数是GCC、Clang等编译器所提供的一系列高效的内联函数,其中包括许多与二进制相关的函数。下面是所有与二进制相关的__builtin函数:
__builtin_popcount(x)
: 返回x的二进制表示中1的个数。
unsigned int x = 65535u;
int count = __builtin_popcount(x); // count的值为16
__builtin_clz(x)
: 返回x的二进制表示中从最高位开始连续0的个数,如果x的值为0,则返回所在类型的位宽。
unsigned int x = 0xf00000u;
int count = __builtin_clz(x); // count的值为8
__builtin_ctz(x)
: 返回x的二进制表示中从最低位开始连续0的个数,如果x的值为0,则返回所在类型的位宽。
unsigned int x = 0xf0u;
int count = __builtin_ctz(x); // count的值为4
__builtin_parity(x)
: 返回x的二进制表示中1的个数是否为奇数,是则返回1,否则返回0。
unsigned int x = 0xfu;
int parity = __builtin_parity(x); // parity的值为1
__builtin_bswap16(x)
: 将x的二进制表示中的16位进行字节交换。
unsigned short x = 0xaabb;
unsigned short y = __builtin_bswap16(x); // y的值为0xbbaa
__builtin_bswap32(x)
: 将x的二进制表示中的32位进行字节交换。
unsigned int x = 0xaabbccddu;
unsigned int y = __builtin_bswap32(x); // y的值为0xddccbbaa
__builtin_bswap64(x)
: 将x的二进制表示中的64位进行字节交换。
unsigned long long x = 0xaabbccddeeff1122ull;
unsigned long long y = __builtin_bswap64(x); // y的值为0x2211ffeeddccbbaa
以上是C++中所有与二进制相关的__builtin函数, 觉得有用别忘了点赞哦。