【嵌入式】uint32值写入到二进制文件中的存储详情

背景

项目预留100字节用于存储参数文件。现在有些数值一个字节表示不够,需要用4个字节。比如数值1144201745,对应的十六进制0x44332211,那么在二进制中存储是怎么样的呢?做个总结

分析

写了一个sample,把uint32_t u32Value1{0x01U}和uint32_t u32Value2{0x44332211U}写到data.bin文件中,然后用十六进制的软件打开查看,文件的数据如下:
在这里插入图片描述
先低字节,然后高字节。
所以,读取的时候,定义一个uint32_t u32ReadValue,从该data.bin文件中读取四个字节,打印出来是十六进制就是0x44332211

扩展

定义一个uint8_t sz_u8Value[4]{0x11,0x22,0x33,0x44},然后把这个打印(((uint32_t)sz_u8Value)值也是0x44332211
把sz_u8Value数组4个字节写到bin.data文件也是上面截图的数据存储方式。

总结

小端存储架构:如果需要把多字节分成单字节并写到二进制文件中,使用的地方按照读取数据读出直接强转对应类型,则需要在写入的时候按照低字节从低到高赋值后写入。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值