776

阿木币

1

精华

1380 小时

在线时间

管理员

Rank: 9Rank: 9Rank: 9

发表于 2022-2-22 17:02:05 1384 浏览 0 回复

[杂言讨论] 技术分享 | float类型与uint8数组的相互转换

1、float 的内存分配

微信图片1.png

微信图片2.png

-3.14数在内存中的表示

符号位(Sign) : 0代表为正,1代表为负

指数位(Exponent):用于存储科学计数法中的指数数据,并且要加上偏移量(float偏移127,double偏移量1023)

尾数部分(Mantissa):尾数部分

2、什么是大小端?

对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序 ;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序

微信图片3.png

大小端

CPU平台:ARM

操作系统:Ubuntu 18.04

编程语言:C/C++

3、float转uint8数组的代码:

微信图片5.png

4、uint8数组转float的代码:

微信图片6.png

5、一个example.cpp:

其中float2u8Arry和u8Arry2float函数传入fasle默认表示小端存储

微信图片7.png

微信图片8.png

6、编译:

g++ example.cpp -o example

7、运行:

./example

微信图片4.png

编译运行效果

阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!

公众号:阿木实验室 ( 领取免费资料包)

官方淘宝店:阿木实验室(可购买硬件配件)

硬件咨询:yanyue199506(欢迎洽谈合作)

课程咨询:jiayue199506 (免费领取机器人工程师学习计划)

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。

微信图片4.png
微信图片3.png
微信图片2.png
微信图片1.png
微信图片8.png
微信图片7.png
微信图片6.png
微信图片5.png

扫一扫浏览分享
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表