详解C语言常用的一些转换工具函数
1、字符串转十六进制
代码实现:
2、十六进制转字符串
代码实现:
或者
效果:十六进制:0x13 0xAA 0x02转为字符串:”13AAA2”
3、字符串转十进制
代码实现:
第一种,如果带负号 这个就是atoi函数的实现:
效果:字符串:”-123” 转为 -123
第二种,如果不带负号:
效果:字符串:”123” 转为 123
第三种:包含转为浮点数:
效果:字符串:”123.456” 先转为 123456,然后除以1000得到123.456
4、十进制转字符串
代码实现:
如果只是单个十进制转字符串,使用sprintf函数就可以了。
如果是十进制数组:
效果:十进制数组13 14转为字符串“1314”
5、u8、u32转换
举个栗子:ASCII码里
这里写图片描述 字符‘A' , 一个字节8bit ,即u8 十六进制为 0x41 二进制为 0100 0001
而对应的十进制为 65 整型65,4个字节32bit,即u32 十六进制为 0x41 二进制为 0000 0000 0000 0000 0000 0000 0100 0001
将u32数转换成u8数组
注意:这里是字符数组,不是字符串
字符串是以空字符(\0)结尾的char数组
效果:整型 50 转字符数组 {‘\0','\0','\0','2'}
u8数组转u32
voidU8ArrayToU32(uint8_t*buf,uint32_t*u32Value) { *u32Value=(buf[0]<<24)+(buf[1]<<16)+(buf[2]<<8)+(buf[3]<<0); }
效果:字符数组 {‘\0','\0','\0','2'}转为整型 50
6、大端小端
最后就是大小端问题了。STM32 默认是小端模式的,那么该如何转为大端?
1、转为大端
效果:len为数据类型为 u16(short),比如 0x11 0x22,转为u8(usigned char)数组。
大端为:
小端为:
到此这篇关于详解C语言常用的一些转换工具函数的文章就介绍到这了,更多相关C语言转换工具函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!