C常用基础函数集合
来源:互联网 发布:Ubuntu 安装c 编译器 编辑:程序博客网 时间:2024/06/05 22:47
/*** 字符处理 ***/
#define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))#define MAKELONG(a, b) ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16))#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff))#define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))
字符提取,复制函数
// Copy一个WORD// 指针变量按照大端字节:高位字节在低位字节的前面,也就是高位在内存地址低的一端void CopyWord(void * pDest, const u16 value){*((BYTE *)pDest) = HIBYTE(value);*(((BYTE *)pDest) + 1) = LOBYTE(value);}// Copy一个DWORD// 指针变量按照大端字节:高位字节在低位字节的前面,也就是高位在内存地址低的一端void CopyDword(void * pDest, const u32 value){*((BYTE *)pDest) = HIBYTE(HIWORD(value));*(((BYTE *)pDest) + 1) = LOBYTE(HIWORD(value));*(((BYTE *)pDest) + 2) = HIBYTE(LOWORD(value));*(((BYTE *)pDest) + 3) = LOBYTE(LOWORD(value));}
数制转换
// 十进制数转换为BCD数0X09->0X090X0B->0X11BYTE ByteToBcd(BYTE num){return (num / 10) * 16 + (num % 10);}// BCD数转换为十进制数字节0X12->0X0CBYTE BcdToByte(BYTE uBcd){return (uBcd / 16) * 10 + (uBcd % 16);}
eg:
// 输入信号ymemset(msgReport->sign, 0, sizeof(msgReport->sign));{u32 inSignal = Frm_GetSignalGroup();msgReport->sign[0] = LOBYTEL(inSignal);msgReport->sign[1] = HIBYTEL(inSignal);}
阅读全文
0 0
- C常用基础函数集合
- 常用基础常用JS函数和语法集合大全
- C语言基础--常用字符串处理函数
- Object-c基础系列-NSString常用方法集合
- PHP常用函数集合
- sql常用函数集合
- 常用辅助函数集合
- mysql常用函数集合
- 常用函数集合
- JS常用函数集合
- PHP常用函数集合
- C#基础--C#常用集合
- JAVA基础:常用集合框架
- C语言基础——字符串及常用函数
- 黑马程序员--C语言基础-几个常用函数
- ABAP常用函数集合(转)
- stl string常用函数集合
- R语言常用函数集合
- Shader-裁切效果
- 着手SDUT OJ提高实验—动态规划,之前对动态规划的复习#Round1
- 微信小程序中使用scroll-view控件实现上拉加载更多遇到的坑
- AES方式加解密的简单介绍
- Android 滚动显示的 TextView
- C常用基础函数集合
- TF-IDF
- MQ消息架构设计二(消息总线能否实现消息必达?)
- ORACLE数据库增加表空间大小或给表空间增加数据文件
- Vue自定义全局组件(插件)
- vue.js的路由地址会以#号分隔,去掉
- Django高级拓展
- jsp页面include别的页面到当前页面中,如何取外层的body
- adb