专栏中心

EEPW首页 > 专栏 > 【C练习】大小端转换函数

【C练习】大小端转换函数

发布人:电子禅石 时间:2023-02-22 来源:工程师 发布文章

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


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


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: c
更多 培训课堂
更多 焦点
更多 视频

技术专区