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