新闻  |   论坛  |   博客  |   在线研讨会
【C练习】大小端转换函数
电子禅石 | 2023-02-22 17:23:37    阅读:8349   发布文章

实现一个大小端转换函数。


32bit数据大小端转化

大小端转化的函数有很多,系统也提供了一些运行库,如网络库中提供的:htons、htonl等函数,但需要引用对应的头文件,打包也需要包含对应的库文件。如果只是简单的用到大小端转化,那么可以采用如下宏函数来实现。


可用于网络的IP、Port大小端转化,也可用于flash存储、文件存储时所需的大小端转化。


// 4bytes、32bit数据大小端转化
#define L2B32(Little) (((Little & 0xff) << 24) | (((Little >> 8) & 0xff) << 16) | (((Little >> 16) & 0xff) << 8) | ((Little >> 24) & 0xff))

————————————————

优化一下

// 4bytes、32bit数据大小端转化
#define L2B32(Little) (((Little & 0xff) << 24) | (((Little) & 0xff00) << 8) | (((Little) & 0xff0000) >> 8) | ((Little >> 24) & 0xff))

16bit数据大小端转化
// 2bytes、16bit数据大小端转化
#define L2B16(Little) (((Little & 0xff) << 8) | ((Little >> 8) & 0xff))

原文链接:https://blog.csdn.net/u010333084/article/details/120738241


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客