二进制、十六进制和浮点数ASCII的转换机制--------IEEE754

news2024/11/16 17:26:51

我在使用GPS时,通过网口接收到了BESTPOS格式的输出结果,它以16进制表示。
当前常见的GPS都以ASCII表示,例如我们在串口助手中可以选择输出类型为ASCII或者是16进制,那么说明它们中见肯定存在某种转换机制,既可以表示出正负号、也可以表示出小数点后的数字,它就是IEEE754


下面是一段BESTPOS十六进制的GPS数据:
AA 44 12 1C 2A 00 00 20 48 00 00 00 8B 78 74 07 50 8F B5 06 00 00 44 00 F6 B1 2C 36 00 00 00 00 10 00 00 00 2C B3 31 89 16 0A 44 40 2B A7 F9 0F 0F 0F 5D 40 00 00 6A 14 45 1A 4E 40 33 33 1B C1 3D 00 00 00 C3 BC 3A 40 71 19 6F 40 DB 2A ED 40 00 00 00 00 00 00 00 00 00 00 00 00 08 06 06 00 00 00 00 01 27 AD 7C 33


BESTPOS数据格式

header 28 bytes --------------
AA 44 12
1C=28=>28 bytes header(Header Lgth)
2A 00=42=>bestposa(page 375 of 129 Rev8)
00=0=>Binary
20=32=>com1(page 28 of 20000129 Rev8)
48 00=>72(不包含header以及CRC的主体数据共有72个字节)
00 00=>0(Sequence)
8B=>139(Idle Time)
78=120=>COARSESTEERING(Time Status)
74 07=>1908(GPS reference week number)
50 8F B5 06=> 112562000ms
00 00 44 00(Receiver Status)
F6 B1 (Reserved)
2C 36 (Receiver S/W Version)

------------------data 76 bytes ----------------------------
00 00 00 00=0= SOL_COMPUTED
10 00 00 00= SINGLE
2C B3 31 89 16 0A 44 40=40.0788125(lat)
2B A7 F9 0F 0F 0F 5D 40=116.235294(lon)
00 00 6A 14 45 1A 4E 40= 60.205233(hgt)
33 33 1B C1=-273612.796875(undulation)
3D 00 00 00=WGS84(datum id#)
C3 BC 3A 40=2.9177711009979248046875(lat )
71 19 6F 40=1.7359278202056884765625(lon )
DB 2A ED 40=3.411481380462646484375 (hgt )
00 00 00 00 (stn id)
00 00 00 00 (diff_age)
00 00 00 00 (sol_age)
08(#SVs)
06(#solnSVs)
06(#solnL1SVs)
00(#solnMultiSVs)
00(Reserved)
00 (ext sol stat)
00(Galileo and BeiDousig mask)
01(GPS andGLONASS sigmask)
27 AD 7C 33=校验位


关键的东西来了


64位双精度浮点数规格化表示

X= (-1)s ×(1.M)× 2E-1023
在这里插入图片描述

实例一:现针对BESTPOSA中的十六进制纬度“2C B3 31 89 16 0A 44 40”做以转换,实例如下:
1、将“2C B3 31 89 16 0A 44 40”从右至左,从高位至低复写一遍:40 44 0A 16 89 31 B3 2C

2、将“40 44 0A 16 89 31 B3 2C”写成二进制“01000000 01000100 00001010 00010110 10001001 00110001 10110011 00101100”

3、01000000 01000100 00001010 00010110 10001001 00110001 10110011 00101100该二进制数据中红色字体“0”代指符号位S,11位绿色二进制字体“1000000 0100”代指含阶符的阶码E,52位蓝色二进制字体“0100 00001010 00010110 10001001 00110001 10110011 00101100”代指尾数M。

4、根据公式X= (-1)s×(1.M)× 2E-1023 ,
得知:5640591441507116,5626228431264431
(-1)s =(-1)0 =1
(1.M) 10=(10100 00001010 00010110 10001001 00110001 10110011 00101100) /(252)=1.2524628981729604149109036370646
E=(1000000 0100)=(1028),2(E-1023)=2(1028-1023)=25;
X= (-1)s ×(1.M)× 2(E-1023)=1×1.2524628981729604149109036370646×25= 40.078812741534733277148916386068

5、即的纬度为40.078812741534733277148916386068,同时bestposa语句里的64位双精度浮点数的经度和高度的算法同上。


我建议读者自己动手算一下,就会发现这规则还是很有意思的!遇到进制转换可以直接百度:在线进制转换器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

javaEE 初阶 — 网络层 IP 协议 的功能 — 路由选择与地址管理

文章目录IP 协议的功能1.IP 协议的路由选择2.IP 协议的地址管理2.1 网络号与主机号的分界2.2 特殊 IPIP 协议的功能 网络层主要做两件事: 地址管理 路由选择 网络层的代表就是 IP 协议 网络层主要是负责管理路由设备,要从两个结点之间找到一条具体的…

01 presto 概述: 特性 优缺点 场景 架构

文章目录1. Presto是什么2. Presto优缺点2.1. 优点2.2. 缺点3. Presto适用场景4. Presto数据模型5. Presto 架构5.1 执行流程关键词:MPP 多源 即席查询 统一SQL执行引擎 分布式SQL引擎 数据分析 1. Presto是什么 Presto是一款开源的分布式并行计算(MPP)引擎&#x…

Hive基础命令

一、Hive其他命令 1、在hive cli命令窗口中如何查看hdfs文件系统 dfs -ls /;2、在hive cli命令窗口中如何查看本地文件系统 !ls /opt;二、Hive数据类型 1、基本数据类型 红标为常用的数据类型; 对于Hive的String类型相当于数据库的varchar类型,该类型…

python之web自动化测试框架

梳理下搭建web自动化框架的流程: 创建目录: cases:存放测试用例,unittest框架要求用例名必须以test开头,所以命名test_case.py test_case.py代码如下:继承unittest.TestCase类下面的方法setupclass(),te…

优思学院|精益生产现场管理的要素是什么?

精益生产的目的是通过消除3M来实现生产过程的优化和精简。3M指的是 "Muda"、"Muri"、"Mura",这三个词来自于日本,代表了生产过程中的浪费、超负荷和不平衡。 因此,要消除3M,优思学院认为企业精益生…

qt-c++进阶1-window、linux下获取本机所有网卡ip信息、根据网卡名获取ip地址。

系列文章目录 例如:第一章 主要是通过qt-c实现获取本机电脑的网卡信息或者是IP信息 文章目录系列文章目录前言一、获取本机网卡IP信息1.1 获取ip地址方法1.2 代码实例总结前言 总结c获取本机网卡信息的方法 第一章:适用于windows操作系统、linux操作系…

中级嵌入式系统设计师2015下半年下午应用技能试题

中级嵌入式系统设计师2015下半年下午试题 试题一 阅读以下关于某嵌入式系统设计的说明,回答下列问题。 [说明] 某公司承接了某嵌入式系统的研制任务。该嵌入式系统由数据处理模块、系统管理模块、FC网络交换模块和智能电源模块组成,系统组成如图1所示。数据处理模块处理系统…

Linux 练习三 (Makefile工程管理器)

文章目录Makefile工程管理器第一个makefile:编写两个.c源文件,并且让一个调用另外一个,使用makefile建立依赖,生成可执行文件,并执行。伪目标变量预定义变量和自动变量通配符和模式匹配内置函数循环指定makefile文件综…

js数组格式字符串处理

文章目录一. 前言二. 数组还原1. 方法一2. 方法二3. 方法三4. 方法四一. 前言 由于数据传输的问题我们常常在请求后拿到数组格式的字符串,一般情况分为以下四种: let str1 ["a","b","c","d"]; // 类型一 let…

【异常解决】The coordinator is not available

问题 最近上线跑了一个flink任务,运行不久,就会挂掉,初步查看日志报错如下 WARN org.apache.flink.connector.kafka.source.reader.KafkaSourceReader [] - Failed to commit consumer offsets for checkpoint 1 org.apache.kafka.clients…

IGBT窄脉冲现象

IGBT窄脉冲现象 tips:资料来自知乎 英飞凌《IGBT窄脉冲现象解读》 IGBT窄脉冲现象 1.什么是窄脉冲现象? 2.窄脉冲现象的原因 3.双脉冲测试IGBT窄脉冲开通 4.FWD窄脉冲开通 1.什么是窄脉冲现象? IGBT作为一种功率开关,从门级信号到器件开关过程…

用Python制作邮件检测器

github地址: https://github.com/CaLlMeErIC/MailDetective 因为需求需要写一个简单的邮件检测系统的框架,这里记录下思路 首先第一反应,这个检测系统不应该是各个邮件收件系统都有自带的吗,于是搜索了下是否有相关的邮件检测开源软件&#…

行测-判断推理-图形推理-样式规律-属性规律-对称性

中心对称:可以看作,图上的每一个点,都能关于中心点,在图上找到另一个对称的点五个图都是轴对称图形,只有答案C是轴对称图形选C都是中心对称图形选A1 3 5中心对称2 4 6轴对称中心对称选B对称轴顺时针45旋转选A对称轴的数…

极智项目 | 实战pytorch arcface人脸识别

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文介绍 实战pytorch arcface人脸识别,并提供完整项目源码。 本文介绍的实战arcface人脸识别项目,提供完整的可以一键训练、测试的项目工程…

微信公众号历史作品定向采集

最近有遇到微信公众号历史作品采集的需求,这里做一下记录, 登录自己注册好的的微信公众号后台进入创作界面,点击右上角的引用: 弹出如下界面: 选择查找公众号文章,输入要查找的公众号: 回车: 同时就可以打开F12开始抓包,选择公众号点击进入: appmsg?action=li…

golang 整合antlr语法校验

1. 背景 在项目中我们可能会遇到表达式检索的场景,例如,输入以下表达式检索,需要解析表达式并得到检索结果。 ip"192.168.1.3" && (port"80" || protocol"http")此时,我们需要对语法进行…

Linux启动过程

theme: channing-cyan 两种启动方式 传统启动方式(LEGACYMBR) 指传统BIOS启动方式,存在一些不足:比如最大只支持2TB磁盘,磁盘最多四个分区,且不支持图形操作 UEFIGPT方式 是新式的启动方式&#xff0c…

数学小课堂:三次方程(定理发明的过程)

文章目录 引言I 一元三次方程1.1 通解发明权之争1.2 费拉里-塔尔塔利亚公式1.3 Mathematica1.4 数学定理发明的过程引言 学习数学,最重要的是把实际问题变成数学问题,然后知道如何利用各种软件工具来解决。 方程是一个能把具体问题,等量转化成类型问题的好工具。 一元三次方…

Jetson AGX Orin安装Anaconda、Cuda、Cudnn、Pytorch最全教程

文章目录一:Anaconda安装二:Cuda、Cudnn安装三:Pytorch安装一:Anaconda安装 Jetson系列边缘开发板,其架构都是arm64,而不是传统PC的amd64,深度学习的环境配置方法大不相同。想要看amd64的相关环…

智能家居项目(六)之摄像头模块

目录 一、树莓派mipg-streamer实现监控功能调试 1、实现基本思路 2、安装摄像头模块 2.1、在安装sudo apt-get install libv4l-dev 的命令时报错 3、开启摄像头 以下内容是针对树莓派是stretch版本的修改办法: 一、树莓派mipg-streamer实现监控功能调试 1、…