数据包 进制的转换-数据包的位置的相应计算

问题描述

数据包的位置的相应计算

示例数据(包括:帧头、包长、数据包内容、CRC 校验、帧尾):
AA AA AA 00 01 30 30 31 31 31 31 30 32 30 36 30 39 30 30 30 31 47 31 30 32 4C
32 30 36 31 32 30 32 32 35 00 00 01 D6 07 08 11 05 0F 00 04 0B 33 19 00 2A 00 00 00
03 00 53 03 00 66 02 00 68 00 00 00 02 00 61 00 00 00 00 00 00 00 00 00 0C 33 19 00
2A 00 00 00 02 00 67 02 00 54 01 00 68 00 00 00 02 00 4D 00 00 00 00 00 00 00 00 00
1F 33 19 00 2A 00 00 00 02 00 5C 01 00 6C 01 00 55 01 00 56 01 00 46 00 00 00 00 00
00 00 00 00 20 33 19 00 2A 00 00 00 02 00 5F 02 00 50 01 00 5A 01 00 6C 02 00 53 00
00 00 00 00 00 00 00 00 E0 9F EE EE
数据包分解为:
AA AA 2 个字节的时间间隔的帧头
AA 00 数据包内容长度,170 字节
01 数据包类型,实时交通数据包
30 30 31 31 31 31 30 32 30 36 30 39 30 30 30 31 设备身份识别码
47 31 30 32 4C 32 30 36 31 32 30 32 32 35 00 站点编号
00 设备硬件错误码,正常
01 调查内容,调查所有项目(不含预留字段)
D6 07 年份,2006 年

我想获得设备身份识别码的39,,,,怎么获得!!!???

解决方案

把这些数据存到一个BYTE数组,然后根据协议格式,计算偏移,数组对应的位置到你需要的数据,然后获取对应的BYTE就可以获得你的39等

解决方案二:

考虑直接一把把数据都存放在一个char*…然后直接读取固定位置的两位,再算出id…刚出来混,说错了请别见怪啊…请指正…

时间: 2024-12-21 15:38:41

数据包 进制的转换-数据包的位置的相应计算的相关文章

PB中编写10进制到其他进制的转换函数

有时候我们要用到10进制与其他进制之间的转换,如10-16进制的转换.在此我编写了一个函数,可以方便的把10进制转换到其他进制. 函数为changejz(long shi,int how )其中参数shi为要转换的10进制数据,how为要转换到的进制类型,取值为2,8,16三个,整个函数的返回值为string型. 大家都知道,要把10进制转换到诸如8进制,首先得转换到2进制,再由2进制转换到8进制,所以函数的第一步为:把输入的数据都由10进制转换到2进制. 2进制 8进制 10进制 16进制 1

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

10进制 16进制-Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库

问题描述 Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库 Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库 急啊 解决方案 var a=101; a=a.toString(16); alert(a);//用Ext.ajax发送a到服务器保存 http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.Ajax 解决方案二: 1990(10)= 124 ×16+6 =(7×16+12)×16+6--乘出来= =7×16×16+1

ios-IOS 如何把16进制字符串转换成byte 求各位大神 最好能有代码

问题描述 IOS 如何把16进制字符串转换成byte 求各位大神 最好能有代码 IOS 如何把16进制字符串转换成byte?求各位大神 最好能有代码 解决方案 字符串由字符组成,每个字符都占用一定的字节,我记得是4还是多少,这是c语言底层的算法,应该还有其他算法

javascript 10进制和64进制的转换

原文:javascript 10进制和64进制的转换 function string10to64(number) { var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ-~'.split(''), radix = chars.length, qutient = +number, arr = []; do { mod = qutient % radix; qutient = (qutient - m

Python中不同进制互相转换(二进制、八进制、十进制和十六进制)_python

在我的印象里面进制互相转换确实是很常见的问题,所以在Python中,自然也少不了把下面这些代码收为util. 这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用.下面贴出它的实现代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # 2/10/16 base trans. wrote by srcdog on 20th, April, 2009 # ld elements in base 2, 10, 16. import os

php实现将任意进制数转换成10进制的方法_php技巧

本文实例讲述了php实现将任意进制数转换成10进制的方法.分享给大家供大家参考.具体如下: php将任意进制的数转换成10进制,例如8进制转换成10进制,16进制转换成10进制 <?php # Show the steps involved in converting a number # from any base (like octal or hex) to base 10 # See below for examples, instructions and copyright functi

java中进制的转换,Byte与16进制的转换方法_java

java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十进制转成十六进制: String Integer.toHexString(int i) 十进制转成八进制 String Integer.toOctalString(int i) 十进制转成二进制  String Integer.toBinaryString(int i) 十六进制转成十进制 Inte

如何将16进制的转换成汉字啊 急急急!!请好心人帮忙

问题描述 我恢复出来的数据显示的都是16进制的看不懂如何能转换成汉字啊 解决方案 解决方案二: 解决方案三:System.Text.Encoding.Default.GetString(/*你的16进制数据*/); 解决方案四:是在什么地方输入这些啊?我不太懂哦,能说详细点嘛这些资料对我很重要!麻烦你了呢解决方案五:引用3楼leier_bao的回复: 是在什么地方输入这些啊?我不太懂哦,能说详细点嘛这些资料对我很重要!麻烦你了呢 先usingSystem.Text:你想在哪里处理就在那里处理解决