STM32中使用long long 型的数据以及数据的转换

本文介绍了一种使用联合体实现64位整数(运单号)到字节数组转换的方法,特别适用于小端模式的处理器,如M3。通过示例展示了如何将一个具体的运单号转换为其16进制表示形式,并进一步分解成字节数组。
因为要保存运单号码,又不想使用字符串保存,所以就用了uint_64_t的类型保存数据,传输的时候要将其转为字节数组,使用联合体能方便进行转换
//8个字节长度的联合体,注意,因为M3是使用的小端模式,所以高字节的数据是保存在高地址中的
union  byte8
{
  uint64_t u64_buf;
  u8 u8_buf[8];
  u16 u16_buf[4];
  u32 u32_buf[2];

}4DWORD;

使用方式:例如一个运单号12345678901234;
转换为16进制的时候:
4DWORD.u64_buf=12345678901234;
12345678901234=0x 0B 3A 73 CE 2F F2
此时4DWORD.u8_buf[0]=0x0B
4DWORD.u8_buf[1]=0x3A
以此类推…

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值