常用算法集合

来源:互联网 发布:淘宝童装名字大全 编辑:程序博客网 时间:2024/06/05 17:21

1. BCD 转换

#define BIN2BCD(A)  (((((A) % 10000)/1000) << 12) + ((((A) % 1000)/100) << 8) + ((((A) % 100)/10) << 4) + ((A) % 10))#define BCD2BIN(A)  ((((A) & 0xf000) >> 12) * 1000 + (((A) & 0xf00) >> 8) * 100 + (((A) & 0xf0) >> 4) * 10 + ((A) & 0x0f))

2. 宏连接函数名

#define RTCFUNC(type,chip)  type##_##chipeg. RTCFUNC(init,PCF8563)(void)=init_PCF8563(void)

3. 打印字串值,平均值宏

#define DUMP(str,len)                                   \{   int _i_;                                            \    for (_i_=0; _i_<(len); _i_++)                       \        printf("%02X ", (unsigned char)(str)[_i_]);     \}/*** (TakeAverage() will put the result in data[0].)*/#define TakeAverage(data, count)                    \        /* int data[][2], count */                  \{   int _i;                                         \    int _sX = 0, _sY = 0;                           \                                                    \    for (_i=0; _i<(count); _i++)                    \    {   _sX += (data)[_i][0];                       \        _sY += (data)[_i][1];                       \    }                                               \    (data)[0][0] = _sX/count;                       \    (data)[0][1] = _sY/count;                       \}
0 0
原创粉丝点击