| 
    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))) |