`
jishublog
  • 浏览: 872841 次
文章分类
社区版块
存档分类
最新评论

各种数据格式转换简单实现

 
阅读更多

1. 把内存里十六进制字符串转为整数

int HexToInt(const char* pstr_str,int li_len)
{

char s[4];
int i, x=li_len-1;

if(li_len >4 || li_len < 1)
{
return -1;
}

memset(s,0,4);

for (i=0;i<li_len;i++)
{
memcpy(&s[i],&pstr_str[x],1);
x--;
}
x=0;
memcpy(&x,s,4);
return x;
}

2.十六进制转换为字符串

int HexToStr(unsigned const char *pstr_HexData,const int Length,char *pstr_StrData)
{
int i=0;
unsigned char lz_tmp[4];
for(i=0;i<Length;i++)
{
memset(lz_tmp,0,2);
sprintf(lz_tmp,"%02X",pstr_HexData[i]);
strcat(pstr_StrData,lz_tmp);
}
return 0;
}

3.BCD进制转换成字符串

int BCDToASC(unsigned const char *pstr_BCDData,const int Length,char *pstr_ASCData)
{
int i=0;
unsigned char H,L;
unsigned char tmp[4];

for(i=0;i<Length;i++)
{
H=pstr_BCDData[i]&0x0F;
L=pstr_BCDData[i]&0xF0;
L=L>>4;
memset(tmp,0,4);
sprintf(tmp,"%0X",H);
strcat(pstr_ASCData,tmp);
if(L == 0xF)
{
break;
}
sprintf(tmp,"%0X",L);
strcat(pstr_ASCData,tmp);
}
return 0;
}

4.十六进制转换成ASC

int HexToASC(unsigned const char *pstr_HexData,const int Length,char *pstr_ASCData)
{
int i=0;

int li_val = 0;
char lz_tmp[3]={0};


for(i=0;i<Length;i++)
{
strncpy(lz_tmp,pstr_HexData+i,1);

li_val = HexToInt(lz_tmp,1);

pstr_ASCData[i] = (char)li_val;

}
return 0;
}

十六进制很大的时候,例如4200000000,这个时候转INT虽然可以成功,但数据不对。

//调用strtol系统函数,转换成Unsigned long类型

void hexToDec(char *a, unsigned long* x)
{ *x = strtol(a, (char**)NULL, 16);}


unsigned long HexToLong(const char* pstr_str,int li_len)
{

char s[33];
char c_temp[3]={0};
long i, x;
unsigned long value=0;
int m=li_len-1;
char lz_part[9]={0};
int len;
char logMessage[256]={0};
char sourceStr[9]={0};

if(li_len >4 || li_len < 1)
{
return -1;
}

memset(s,0,33);

HexToStr(pstr_str,li_len,sourceStr);

hexToDec(sourceStr,&value);


return value;


分享到:
评论

相关推荐

    将各种数据类型转换为JSON

    简单实用的JSON转换类,支持DATATABLE DATASET LIST等多种数据类型

    python实现批量图片格式转换

    本文实例为大家分享了python实现批量格式转换的具体代码,供大家参考,具体内容如下 深度学习过程中总是绕不开数据集的制作,有时候实际图片格式或大小可能与需要关心的图片信息不一致,那么我们只能手动做好数据...

    嗨格式PDF转换器 v1.0.12.zip

    嗨格式PDF转换器轻松拖拽即可实现批量转换,且支持图文混排和表格。文档转换过程中不会改变文档原本的排版,最大精准度地保留所有原始数据和布局,转换成功率高达99%。如果您想实现文件格式之间的批量互转,请认准嗨...

    PLC数据类型互相转换

    在实际应用中,当需要对输入或输出数据进行格式调整时,数据类型转换工具就发挥了关键作用。它能帮助用户快速适应不同的编程需求,提高编程效率和代码的可读性。 同时,这类工具还会考虑到数据范围、精度等因素,...

    数据结构数制转换

    数据结构中的简单常见小程序,用C语言实现数制之间的转换 十进制到二进制 八进制 十六进制,希望可以帮助大家学习数据结构。

    数据表转化为Json数据代码实现

    一个DataTable转化为Json数据代码的简单实现

    IEEE754相互转换.bas IEEE754.bas,ModbusRTU协议中浮点数转换VB6源代码

    VB6自行编写的源代码,实现ModbusRTU协议四个字节整形 转换成浮点数据,也可以浮点数据转换为4字节整形,bas形式,用户可以直接在自己程序中调用。 Public Function MODBUSLongtoFloat32(input1 As String) As ...

    地震数据预处理方法研究与实现

    理,并对数据格式之间的转换和压缩处理给出了实现方案。并结合课题技术要求, 利用面向对象分析与设计,用面向对象语言VB,C++在操作系统Windows上完成 了地震数据格式读取,转换,压缩,分析处理的设计与实现。 最后...

    徕卡静态m00文件转换为Rinex格式小工具

    徕卡的静态原始数据一般为m00格式的文件,一般的软件都无法使用,我们提供了一个实用...软件界面简洁,操作简单,轻松实现数据的转换,大大提高了数据处理效率。软件可以支持批量转换,直接选择要转换的m00文件夹即可。

    浮点数与IEEE754的转换

    因为要做一个MODBUS通讯的项目,在通讯要将仪表发来的数据转换成浮点数,又要将浮点数转换为 IEEE754的二进制表式形式发出去。网上查了很多都是一大段一大段的,但我认为这个是最简单明了的。 希望对做类似项目的人...

    DTS构建组件及其如何完成数据转换服务

    DTS 本身包含多个工具并提供了接口来实现在任何支持OLE DB 的数据源间导入、导出或传递数据,并使这一工作变得简单高效。这意味着不仅可以在SQL Server 数据源间进行数据的转储,而且可以把Sybase, Oracle, ...

    使用FFmpeg将RGB格式图片或视频转换为YUV格式

    VC2008项目打包,使用FFmpeg版本为2.2.2 win32bit ...*本程序实现了RGB像素数据转换为YUV像素数据 *是最简单的FFmpeg视频编码方面的教程。 *通过学习本例子可以了解FFmpeg的图片格式转换的过程。 */

    已经实现了:(含源码)VB利用官方api读写JSON数据格式文件简单实例.zip

    vb6读写json格式文件,这里是源码,可以直接拿来使用。

    swift-Model2App是一个简单的Swift库实现将Swift数据模型转换为可用的CRUD程序

    Model2App 是一个简单的Swift库实现将Swift数据模型转换为可用的CRUD程序

    C# 通用类型转换方法

    此方法能转换几乎所有简单的值类型以及实现了强制类型转换的引用类型,此方法利用反射和lambda实现,由于此方法是在大约2010年左右写的,当时个人知识有限对反射了解不深,没有将元数据中的方法成功转换成委托以达到...

    mseed2ascii:将miniSEED格式的数据转换为ASCII

    将miniSEED格式的时间序列数据转换为ASCII文本。 输出包括一个简单的标头,后跟 文献资料 有关用法信息,请参阅doc目录中的。 下载和构建 区域包含发布版本。 在大多数Unix / Linux环境中,一个简单的“ make”将...

    Java实现json数据导入到Excel的方法

    本Java类实现了将标准的json字符串转换成map,并将数据解析到Excel的方法,本方法简单实用,可以批量导出数据到Excel文档中

    天文巡天数据管理发布系统的设计与实现

    首先利用数据库搭建起数据平台,接着解决了数据平台如何从文件中自动导入数据的问题,最后实现了数据发布平台以及该平台上的数据查询、格式转换、文件下载等功能。 本文自上而下,介绍了天文巡天数据管理发布系统从...

    echarts+Servlet+mysql从数据库获取数据实现简单图表展示

    用Servlet实现的echarts展示两种不同形式图表的小demo,使用的开发工具是eclipse,数据库是mysql。文件中包含项目源码,对应的数据库,以及项目运行后实现的图表截图(含url)。项目本人亲测,可完美展示图表,若有...

    基于简单的FIFO提供数据宽度转换

    本设计方案描述了为不同宽度读写数据端口的数据宽度转换,怎样基于FPGA的FIFO实现共有时钟(同步)。可以使用Xilinx的Spartan II系列FPGA实现这种FIFO。这个方法使用了片上DLL(延迟锁相环)宏、分布式存储器和简单...

Global site tag (gtag.js) - Google Analytics