#define EXTRACT_32(_X) (((U32)*(_X+0) << 24) | ((U32)*(_X+1) << 16) | ((U32)*(_X+2) << 8) | ((U32)*(_X+3) << 0))
#define EXTRACT_32N(_X) ((*(_X+3) << 24) | (*(_X+2) << 16) | (*(_X+1) << 8) | (*(_X+0) << 0))
#define EXTRACT_24(_X) (((U32)*(_X+0) << 16) | ((U32)*(_X+1) << 8) | ((U32)*(_X+2) << 0))
#define EXTRACT_16(_X) (((U32)*(_X+0) << 8) | ((U32)*(_X+1) << 0))
#define EXTRACT_13(_X) ((((U32)*(_X+0) & 0x1F) << 8) | ((U32)*(_X+1) << 0))
#define EXTRACT_12(_X) ((((U32)*(_X+0) & 0x0F) << 8) | ((U32)*(_X+1) << 0))
#define EXTRACT_10(_X) ((((U32)*(_X+0) & 0x03) << 8) | ((U32)*(_X+1) << 0))
#define EXTRACT_8(_X) (*(_X))
#define EXTRACT_4T(_X) ((*(_X) >> 4) & 0xf)
#define EXTRACT_4B(_X) (*(_X) & 0xf)
#define EXTRACT_BCD(_X) (((*(_X) & 0xF0) >> 4) * 10 + (*(_X) & 0x0F))
从大端模式buf中提取想要的位数
最新推荐文章于 2021-11-11 11:13:09 发布