XFusion API v1.3.0
|
位定义以及位操作宏。 更多...
宏定义 | |
#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) |
位定义以及位操作宏。
#define BIT31 0x80000000 |
在文件 xf_bit_defs.h 第 39 行定义.
#define BIT30 0x40000000 |
在文件 xf_bit_defs.h 第 40 行定义.
#define BIT29 0x20000000 |
在文件 xf_bit_defs.h 第 41 行定义.
#define BIT28 0x10000000 |
在文件 xf_bit_defs.h 第 42 行定义.
#define BIT27 0x08000000 |
在文件 xf_bit_defs.h 第 43 行定义.
#define BIT26 0x04000000 |
在文件 xf_bit_defs.h 第 44 行定义.
#define BIT25 0x02000000 |
在文件 xf_bit_defs.h 第 45 行定义.
#define BIT24 0x01000000 |
在文件 xf_bit_defs.h 第 46 行定义.
#define BIT23 0x00800000 |
在文件 xf_bit_defs.h 第 47 行定义.
#define BIT22 0x00400000 |
在文件 xf_bit_defs.h 第 48 行定义.
#define BIT21 0x00200000 |
在文件 xf_bit_defs.h 第 49 行定义.
#define BIT20 0x00100000 |
在文件 xf_bit_defs.h 第 50 行定义.
#define BIT19 0x00080000 |
在文件 xf_bit_defs.h 第 51 行定义.
#define BIT18 0x00040000 |
在文件 xf_bit_defs.h 第 52 行定义.
#define BIT17 0x00020000 |
在文件 xf_bit_defs.h 第 53 行定义.
#define BIT16 0x00010000 |
在文件 xf_bit_defs.h 第 54 行定义.
#define BIT15 0x00008000 |
在文件 xf_bit_defs.h 第 55 行定义.
#define BIT14 0x00004000 |
在文件 xf_bit_defs.h 第 56 行定义.
#define BIT13 0x00002000 |
在文件 xf_bit_defs.h 第 57 行定义.
#define BIT12 0x00001000 |
在文件 xf_bit_defs.h 第 58 行定义.
#define BIT11 0x00000800 |
在文件 xf_bit_defs.h 第 59 行定义.
#define BIT10 0x00000400 |
在文件 xf_bit_defs.h 第 60 行定义.
#define BIT9 0x00000200 |
在文件 xf_bit_defs.h 第 61 行定义.
#define BIT8 0x00000100 |
在文件 xf_bit_defs.h 第 62 行定义.
#define BIT7 0x00000080 |
在文件 xf_bit_defs.h 第 63 行定义.
#define BIT6 0x00000040 |
在文件 xf_bit_defs.h 第 64 行定义.
#define BIT5 0x00000020 |
在文件 xf_bit_defs.h 第 65 行定义.
#define BIT4 0x00000010 |
在文件 xf_bit_defs.h 第 66 行定义.
#define BIT3 0x00000008 |
在文件 xf_bit_defs.h 第 67 行定义.
#define BIT2 0x00000004 |
在文件 xf_bit_defs.h 第 68 行定义.
#define BIT1 0x00000002 |
在文件 xf_bit_defs.h 第 69 行定义.
#define BIT0 0x00000001 |
在文件 xf_bit_defs.h 第 70 行定义.
#define BIT63 (0x80000000ULL << 32) |
在文件 xf_bit_defs.h 第 82 行定义.
#define BIT62 (0x40000000ULL << 32) |
在文件 xf_bit_defs.h 第 83 行定义.
#define BIT61 (0x20000000ULL << 32) |
在文件 xf_bit_defs.h 第 84 行定义.
#define BIT60 (0x10000000ULL << 32) |
在文件 xf_bit_defs.h 第 85 行定义.
#define BIT59 (0x08000000ULL << 32) |
在文件 xf_bit_defs.h 第 86 行定义.
#define BIT58 (0x04000000ULL << 32) |
在文件 xf_bit_defs.h 第 87 行定义.
#define BIT57 (0x02000000ULL << 32) |
在文件 xf_bit_defs.h 第 88 行定义.
#define BIT56 (0x01000000ULL << 32) |
在文件 xf_bit_defs.h 第 89 行定义.
#define BIT55 (0x00800000ULL << 32) |
在文件 xf_bit_defs.h 第 90 行定义.
#define BIT54 (0x00400000ULL << 32) |
在文件 xf_bit_defs.h 第 91 行定义.
#define BIT53 (0x00200000ULL << 32) |
在文件 xf_bit_defs.h 第 92 行定义.
#define BIT52 (0x00100000ULL << 32) |
在文件 xf_bit_defs.h 第 93 行定义.
#define BIT51 (0x00080000ULL << 32) |
在文件 xf_bit_defs.h 第 94 行定义.
#define BIT50 (0x00040000ULL << 32) |
在文件 xf_bit_defs.h 第 95 行定义.
#define BIT49 (0x00020000ULL << 32) |
在文件 xf_bit_defs.h 第 96 行定义.
#define BIT48 (0x00010000ULL << 32) |
在文件 xf_bit_defs.h 第 97 行定义.
#define BIT47 (0x00008000ULL << 32) |
在文件 xf_bit_defs.h 第 98 行定义.
#define BIT46 (0x00004000ULL << 32) |
在文件 xf_bit_defs.h 第 99 行定义.
#define BIT45 (0x00002000ULL << 32) |
在文件 xf_bit_defs.h 第 100 行定义.
#define BIT44 (0x00001000ULL << 32) |
在文件 xf_bit_defs.h 第 101 行定义.
#define BIT43 (0x00000800ULL << 32) |
在文件 xf_bit_defs.h 第 102 行定义.
#define BIT42 (0x00000400ULL << 32) |
在文件 xf_bit_defs.h 第 103 行定义.
#define BIT41 (0x00000200ULL << 32) |
在文件 xf_bit_defs.h 第 104 行定义.
#define BIT40 (0x00000100ULL << 32) |
在文件 xf_bit_defs.h 第 105 行定义.
#define BIT39 (0x00000080ULL << 32) |
在文件 xf_bit_defs.h 第 106 行定义.
#define BIT38 (0x00000040ULL << 32) |
在文件 xf_bit_defs.h 第 107 行定义.
#define BIT37 (0x00000020ULL << 32) |
在文件 xf_bit_defs.h 第 108 行定义.
#define BIT36 (0x00000010ULL << 32) |
在文件 xf_bit_defs.h 第 109 行定义.
#define BIT35 (0x00000008ULL << 32) |
在文件 xf_bit_defs.h 第 110 行定义.
#define BIT34 (0x00000004ULL << 32) |
在文件 xf_bit_defs.h 第 111 行定义.
#define BIT33 (0x00000002ULL << 32) |
在文件 xf_bit_defs.h 第 112 行定义.
#define BIT32 (0x00000001ULL << 32) |
在文件 xf_bit_defs.h 第 113 行定义.
#define BIT | ( | nr | ) | (1UL << (nr)) |
获取第 nr 位为 1 的值(通常小于 32 位)。
nr | 比特下标,从 0 开始。 |
unsigned long
所能表示的范围。 在文件 xf_bit_defs.h 第 135 行定义.
#define BIT64 | ( | nr | ) | (1ULL << (nr)) |
获取第 nr 位为 1 的值(通常小于 64 位)。
nr | 比特下标,从 0 开始。 |
unsigned long long
所能表示的范围。 在文件 xf_bit_defs.h 第 145 行定义.
#define BIT_SET0 | ( | var, | |
n | |||
) | ((var) &= ~BIT(n)) |
#define BIT_SET1 | ( | var, | |
n | |||
) | ((var) |= BIT(n)) |
#define BIT_FLIP | ( | var, | |
n | |||
) | ((var) ^= BIT(n)) |
#define BIT_GET | ( | src, | |
n | |||
) | (((src) & BIT(n)) >> (n)) |
#define BIT_GET_MODIFY0 | ( | src, | |
n | |||
) | ((src) & ~BIT(n)) |
获取将 32 位源 src 的 bit_n 置 0 后的值。
src | 被读取的变量。 |
n | 比特下标,从 0 开始。 |
在文件 xf_bit_defs.h 第 224 行定义.
#define BIT_GET_MODIFY1 | ( | src, | |
n | |||
) | ((src) | BIT(n)) |
获取将 32 位源 src 的 bit_n 置 1 后的值。
src | 被读取的变量。 |
n | 比特下标,从 0 开始。 |
在文件 xf_bit_defs.h 第 236 行定义.
#define BIT_GET_MODIFY | ( | src, | |
n, | |||
value | |||
) | ((value) ? BIT_GET_MODIFY1((src), (n)) : BIT_GET_MODIFY0((src), (n))) |
获取将 32 位源 src 的 bit_n 置 value 后的值。
src | 被读取的变量。 |
n | 比特下标,从 0 开始。 |
value | 0 或 1。 |
在文件 xf_bit_defs.h 第 249 行定义.
#define BIT_GET_MODIFY_FLIP | ( | src, | |
n | |||
) | ((src) ^ BIT(n)) |
获取翻转 32 位源 src 的 bit_n 后的值。
src | 被读取的变量。 |
n | 比特下标,从 0 开始。 |
在文件 xf_bit_defs.h 第 262 行定义.
#define BITS_MASK | ( | n | ) | (((n) < 32) ? (BIT(n) - 1) : (~0UL)) |
32 位位操作宏(多位)。
获取低 n 位为 1 的位掩码。
n | 小于等于 32 的数。 |
示例如下:
在文件 xf_bit_defs.h 第 282 行定义.
#define BITS_SET0 | ( | var, | |
bits_mask | |||
) | ((var) &= ~(bits_mask)) |
设置 32 位变量 var 的对应位掩码 bits_mask 为 1 的地方为 0。
var | 被设置的变量。 |
bits_mask | 位掩码。注意!为 1 的位表示需要被设为 0 的位。 |
示例如下:
在文件 xf_bit_defs.h 第 303 行定义.
#define BITS_SET1 | ( | var, | |
bits_mask | |||
) | ((var) |= (bits_mask)) |
设置 32 位变量 var 的对应位掩码 bits_mask 为 1 的地方为 1。
var | 被设置的变量。 |
bits_mask | 位掩码。注意!为 1 的位表示需要被设为 1 的位。 |
示例如下:
在文件 xf_bit_defs.h 第 324 行定义.
#define BITS_FLIP | ( | var, | |
bits_mask | |||
) | ((var) ^= (bits_mask)) |
翻转 32 位变量 var 的 bits_mask 为 1 的位。
var | 被设置的变量。 |
bits_mask | 位掩码。注意!为 1 的位表示需要被翻转的位。 |
在文件 xf_bit_defs.h 第 337 行定义.
#define BITS_GET | ( | src, | |
n, | |||
offset | |||
) | (((src) & (BITS_MASK(n) << (offset))) >> (offset)) |
获取 32 位 src 内,从 offset 位起,共 n 位数据。
src | 被读取的源。 |
n | 需要读取 n 位。 |
offset | 偏移量。从 bit0 起计算。 |
详细说明如下:
在文件 xf_bit_defs.h 第 362 行定义.
#define BITS_CHECK | ( | src, | |
bits_mask | |||
) | (!!((src) & (bits_mask))) |
检查变量 var 在 bits_mask 的位置上是否存在 1。
src | 待检查的变量。 |
bits_mask | 位掩码。注意!为 1 的位表示需要检查的位。 |
在文件 xf_bit_defs.h 第 375 行定义.
#define BITS_GET_MODIFY | ( | src, | |
n, | |||
offset, | |||
value | |||
) |
将 32 位 src 的 offset 位起 n 位修改为 value 并返回(不修改 src)。
src | 被读取的源。 |
n | 需要修改的位数。 |
offset | 偏移量。从 bit0 起计算。 |
value | src 的 offset 位起 n 位源需要修改到的目标值。 |
示例如下:
详细说明如下:
在文件 xf_bit_defs.h 第 420 行定义.
#define BITS_SET | ( | src, | |
n, | |||
offset, | |||
value | |||
) | ((src) = BITS_GET_MODIFY((src), (n), (offset), (value))) |