C语言数制与大小端转换(c语言大小写转换的简单方法)

C语言数制与大小端转换(c语言大小写转换的简单方法)

编码文章call10242025-02-01 3:14:1014A+A-

编程时,经常用到进制转换、字符转换。比如软件界面输入的数字字符串,如何将字符串处理成数字呢?今天就和大家分享一下。

嵌入式要学习的东西有很多,希望大家可以尽快掌握嵌入式需要学习的东西,有学习路径非常重要,我总结了很多嵌入式详细资料以及门路,都是亲身经历哒

扫码进群领资料

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数组

void U32ToU8Array(uint8_t *buf, uint32_t u32Value)

{

    buf[0] = ((u32Value >> 24) & 0xFF);

    buf[1] = ((u32Value >> 16) & 0xFF);

    buf[2] = ((u32Value >> 8) & 0xFF);

    buf[3] = (u32Value & 0xFF);

}????效果:整型 50 转字符数组 {‘\0’,’\0’,’\0’,’2’}

u8数组转u32:

void U8ArrayToU32(uint8_t *buf, uint32_t *u32Value)

{

    *u32Value = (buf[0] <<24) + (buf[1] <<16) + (buf[2] <<8) + (buf[3] <<0);

}

效果:字符数组 {‘\0’,’\0’,’\0’,’2’}转为整型 50

大小端(高低位)转换

STM32 默认是小端模式的,那么该如何转为大端?

//转为大端:

pPack[0] = (u8)((len >> 8) & 0xFF);

pPack[1]?=?(u8)(len?&?0xFF);
//转为小端:

pPack[0] = (u8)(len & 0xFF);

pPack[1]?=??(u8)((len?>>?8)?&?0xFF);????效果:len为数据类型为 u16(short),????比如 0x11 0x22,转为u8(usigned char)数组。

大端为:

pPack[0] (0x11 ) 

pPack[1] (0x22) 

小端为:

pPack[0] (0x22) 

pPack[1] (0x11)
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4