XFusion API v1.3.0
|
位操作. 更多...
#include "xf_common_config.h"
宏定义 | |
#define | BIT(nr) (1UL << (nr)) |
获取第 nr 位为 1 的值(通常小于 32 位)。 | |
#define | BIT64(nr) (1ULL << (nr)) |
获取第 nr 位为 1 的值(通常小于 64 位)。 | |
#define | BIT_SET0(var, n) ((var) &= ~BIT(n)) |
32 位位操作宏(一个位)。 | |
#define | BIT_SET1(var, n) ((var) |= BIT(n)) |
设置 32 位变量 var 的 bit_n 为 1。 | |
#define | BIT_SET(var, n, value) ((value) ? BIT_SET1((var), (n)) : BIT_SET0((var), (n))) |
设置 32 位变量 var 的 bit_n 为 value。 | |
#define | BIT_FLIP(var, n) ((var) ^= BIT(n)) |
翻转 32 位变量 var 的 bit_n。 | |
#define | BIT_GET(src, n) (((src) & BIT(n)) >> (n)) |
获取 32 位源 src 的 bit_n。 | |
#define | BIT_GET_MODIFY0(src, n) ((src) & ~BIT(n)) |
获取将 32 位源 src 的 bit_n 置 0 后的值。 | |
#define | BIT_GET_MODIFY1(src, n) ((src) | BIT(n)) |
获取将 32 位源 src 的 bit_n 置 1 后的值。 | |
#define | BIT_GET_MODIFY(src, n, value) ((value) ? BIT_GET_MODIFY1((src), (n)) : BIT_GET_MODIFY0((src), (n))) |
获取将 32 位源 src 的 bit_n 置 value 后的值。 | |
#define | BIT_GET_MODIFY_FLIP(src, n) ((src) ^ BIT(n)) |
获取翻转 32 位源 src 的 bit_n 后的值。 | |
#define | BITS_MASK(n) (((n) < 32) ? (BIT(n) - 1) : (~0UL)) |
32 位位操作宏(多位)。 | |
#define | BITS_SET0(var, bits_mask) ((var) &= ~(bits_mask)) |
设置 32 位变量 var 的对应位掩码 bits_mask 为 1 的地方为 0。 | |
#define | BITS_SET1(var, bits_mask) ((var) |= (bits_mask)) |
设置 32 位变量 var 的对应位掩码 bits_mask 为 1 的地方为 1。 | |
#define | BITS_FLIP(var, bits_mask) ((var) ^= (bits_mask)) |
翻转 32 位变量 var 的 bits_mask 为 1 的位。 | |
#define | BITS_GET(src, n, offset) (((src) & (BITS_MASK(n) << (offset))) >> (offset)) |
获取 32 位 src 内,从 offset 位起,共 n 位数据。 | |
#define | BITS_CHECK(src, bits_mask) (!!((src) & (bits_mask))) |
检查变量 var 在 bits_mask 的位置上是否存在 1。 | |
#define | BITS_GET_MODIFY(src, n, offset, value) |
将 32 位 src 的 offset 位起 n 位修改为 value 并返回(不修改 src)。 | |
#define | BITS_SET(src, n, offset, value) ((src) = BITS_GET_MODIFY((src), (n), (offset), (value))) |
设置 32 位 src 的 offset 位起 n 位为 value。 | |
32 位位宏定义。 | |
#define | BIT31 0x80000000 |
#define | BIT30 0x40000000 |
#define | BIT29 0x20000000 |
#define | BIT28 0x10000000 |
#define | BIT27 0x08000000 |
#define | BIT26 0x04000000 |
#define | BIT25 0x02000000 |
#define | BIT24 0x01000000 |
#define | BIT23 0x00800000 |
#define | BIT22 0x00400000 |
#define | BIT21 0x00200000 |
#define | BIT20 0x00100000 |
#define | BIT19 0x00080000 |
#define | BIT18 0x00040000 |
#define | BIT17 0x00020000 |
#define | BIT16 0x00010000 |
#define | BIT15 0x00008000 |
#define | BIT14 0x00004000 |
#define | BIT13 0x00002000 |
#define | BIT12 0x00001000 |
#define | BIT11 0x00000800 |
#define | BIT10 0x00000400 |
#define | BIT9 0x00000200 |
#define | BIT8 0x00000100 |
#define | BIT7 0x00000080 |
#define | BIT6 0x00000040 |
#define | BIT5 0x00000020 |
#define | BIT4 0x00000010 |
#define | BIT3 0x00000008 |
#define | BIT2 0x00000004 |
#define | BIT1 0x00000002 |
#define | BIT0 0x00000001 |
64 位位宏定义。 | |
#define | BIT63 (0x80000000ULL << 32) |
#define | BIT62 (0x40000000ULL << 32) |
#define | BIT61 (0x20000000ULL << 32) |
#define | BIT60 (0x10000000ULL << 32) |
#define | BIT59 (0x08000000ULL << 32) |
#define | BIT58 (0x04000000ULL << 32) |
#define | BIT57 (0x02000000ULL << 32) |
#define | BIT56 (0x01000000ULL << 32) |
#define | BIT55 (0x00800000ULL << 32) |
#define | BIT54 (0x00400000ULL << 32) |
#define | BIT53 (0x00200000ULL << 32) |
#define | BIT52 (0x00100000ULL << 32) |
#define | BIT51 (0x00080000ULL << 32) |
#define | BIT50 (0x00040000ULL << 32) |
#define | BIT49 (0x00020000ULL << 32) |
#define | BIT48 (0x00010000ULL << 32) |
#define | BIT47 (0x00008000ULL << 32) |
#define | BIT46 (0x00004000ULL << 32) |
#define | BIT45 (0x00002000ULL << 32) |
#define | BIT44 (0x00001000ULL << 32) |
#define | BIT43 (0x00000800ULL << 32) |
#define | BIT42 (0x00000400ULL << 32) |
#define | BIT41 (0x00000200ULL << 32) |
#define | BIT40 (0x00000100ULL << 32) |
#define | BIT39 (0x00000080ULL << 32) |
#define | BIT38 (0x00000040ULL << 32) |
#define | BIT37 (0x00000020ULL << 32) |
#define | BIT36 (0x00000010ULL << 32) |
#define | BIT35 (0x00000008ULL << 32) |
#define | BIT34 (0x00000004ULL << 32) |
#define | BIT33 (0x00000002ULL << 32) |
#define | BIT32 (0x00000001ULL << 32) |