XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_bit_defs.h 文件参考

位操作. 更多...

#include "xf_common_config.h"
xf_bit_defs.h 的引用(Include)关系图:

浏览源代码.

宏定义

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

详细描述

位操作.

作者
catcatBlue (catca.nosp@m.tblu.nosp@m.e@qq..nosp@m.com)
版本
1.0
日期
2024-06-18

Copyright (c) 2024, CorAL. All rights reserved.

在文件 xf_bit_defs.h 中定义.