public  class IEEE754 {

/// <summary>

/// 将二进制值转ASCII格式十六进制字符串

/// </summary>

/// <paramname="data">二进制值</param>

/// <paramname="length">定长度的二进制</param>

/// <returns>ASCII格式十六进制字符串</returns>

public static string toHexString(int data, int length)

{

string result = "";

if (data > 0)

result = Convert.ToString(data, 16).ToUpper();

if (result.Length < length)

{

// 位数不够补0

StringBuilder msg = new StringBuilder(0);

msg.Length = 0;

msg.Append(result);

for (; msg.Length < length; msg.Insert(0, "0")) ;

result = msg.ToString();

}

return result;

}

///<summary>

/// 将浮点数转ASCII格式十六进制字符串(符合IEEE-754标准(32))

/// </summary>

/// <paramname="data">浮点数值</param>

/// <returns>十六进制字符串</returns>

public static string FloatToIntString(float data)

{

byte[] intBuffer = BitConverter.GetBytes(data);

StringBuilder stringBuffer = new StringBuilder(0);

for (int i = 0; i < intBuffer.Length; i++)

{

stringBuffer.Insert(0, toHexString(intBuffer[i] & 0xff, 2));

}

return stringBuffer.ToString();

}

/// <summary>

/// 将ASCII格式十六进制字符串转浮点数(符合IEEE-754标准(32))

/// </summary>

/// <param name="data">16进制字符串</param>

/// <returns></returns>

public static float StringToFloat(String data)

{

if (data.Length < 8 || data.Length > 8)

{

//throw new NotEnoughDataInBufferException(data.length(), 8);

return 0;

}

else

{

byte[] intBuffer = new byte[4];

// 将16进制串按字节逆序化(一个字节2个ASCII码)

for (int i = 0; i < 4; i++)

{

intBuffer[i] = Convert.ToByte(data.Substring((3 - i) * 2, 2), 16);

}

return BitConverter.ToSingle(intBuffer, 0);

}

}

/// <summary>

/// 将byte数组转为浮点数

/// </summary>

/// <param name="bResponse">byte数组</param>

/// <returns></returns>

public static float ByteToFloat(byte[] bResponse)

{

if (bResponse.Length < 4 || bResponse.Length > 4)

{

//throw new NotEnoughDataInBufferException(data.length(), 8);

return 0;

}

else

{

byte[] intBuffer = new byte[4];

//将byte数组的前后两个字节的高低位换过来

intBuffer[0] = bResponse[1];

intBuffer[1] = bResponse[0];

intBuffer[2] = bResponse[3];

intBuffer[3] = bResponse[2];

return BitConverter.ToSingle(intBuffer, 0);

}

}

}

IEEE754 处理数据变换的更多相关文章

  1. kaggle数据挖掘竞赛初步--Titanic<数据变换>

    完整代码: https://github.com/cindycindyhi/kaggle-Titanic 特征工程系列: Titanic系列之原始数据分析和数据处理 Titanic系列之数据变换 Ti ...

  2. R学习笔记 第五篇:数据变换和清理

    在使用R的分组操作之前,首先要了解R语言包,包实质上是实现特定功能的,预先写好的代码库(library),R拥有大量的软件包,许多包都是由某一领域的专家编写的,但并不是所有的包都有很高的质量的,在使用 ...

  3. R实战 第六篇:数据变换(aggregate+dplyr)

    数据分析的工作,80%的时间耗费在处理数据上,而数据处理的主要过程可以分为:分离-操作-结合(Split-Apply-Combine),也就是说,首先,把数据根据特定的字段分组,每个分组都是独立的:然 ...

  4. dplyr-高效的数据变换与整理工具--转载

    1.背景简介 在数据分析工作中,经常需要对原始的数据集进行清洗.整理以及变换.常用的数据整理与变换工作主要包括:特定分析变量的选取.满足条件的数据记录的筛选.按某一个或几个变量排序.对原始变量进行加工 ...

  5. Scikit-learn数据变换

    转载自:https://blog.csdn.net/Dream_angel_Z/article/details/49406573 本文主要是对照scikit-learn的preprocessing章节 ...

  6. Pytorch数据变换(Transform)

    实例化数据库的时候,有一个可选的参数可以对数据进行转换,满足大多神经网络的要求输入固定尺寸的图片,因此要对原图进行Rescale或者Crop操作,然后返回的数据需要转换成Tensor如: import ...

  7. 《R in Action》读书笔记(3) 数据变换

    MindMapper 原文件

  8. 在python3下对数据分块(8x8大小)使用OpenCV的离散余弦变换DCT

    在MATLAB中有blkproc (blockproc)对数据处理, 在python下没找到对应的Function, 这里利用numpy 的split(hsplit和vsplit) 对数据分块处理成8 ...

  9. 数据集成、变换、归约及相关MATLAB工具箱函数

    数据预处理的主要内容包括数据清洗.数据集成.数据变换和数据规约,在数据挖掘的过程中,数据预处理工作量占到了整个过程的60%.数据清洗在上一篇博客中写过,这里主要写后面三部分. 数据集成 数据挖掘需要的 ...

随机推荐

  1. Visual Studio总是在重新生成项目?

    你是否曾经有过这种感觉:即使代码没有改变,Visual Studio也总是在重新生成项目? 我们可以生成一个项目,然后不做任何处理后再次生成,我们就可以看见--VS正在开始生成项目,而我的项目代码并没 ...

  2. 通过yum安装mysql数据

    1. 卸载掉原有mysql 因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已 ...

  3. Django-数据库访问优化

    数据库访问优化 使用标准数据库优化技巧 索引.我们可以使用Field.db_index或者Meta.index_together在Django中添加索引,优先向经常使用filter(),exclude ...

  4. 第一次写博客,就写如何向外行介绍自己做的是什么,那个我是做web的

    如果想外行问你是做什么的,改如何回答.和内行说java后台就可以了,但外行听不懂,我们该如何描述呢? 我的方法是:我做的是java web开发,不是内外的外,是个英文单词web,全名叫world wi ...

  5. 关于java解析xml文件出现的问题

    DOM解析xml文件 问题1:导入javax.xml.parsers.DocumentBuilderFactory出现问题,如图: 解决办法是:由于创建工程时有个默认的jre,重新创建工程改掉就解决了 ...

  6. java_web学习(五) JSTL标准标签库

    1.什么是JSTL JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. ...

  7. Django模板中的数字自增

    Django框架的模板提供了{% for %} 标签来进行循环 例如对集合进行循环是比较简单的 {% for row in v1 %} <div>{{row.name}}</div& ...

  8. 不用第三方解码码取得图片宽高 附完整C++算法实现代码

    在特定的应用场景下,有时候我们只是想获取图片的宽高, 但不想通过解码图片才取得这个信息. 预先知道图片的宽高信息,进而提速图片加载,预处理等相关操作以提升体验. 在stackoverflow有一篇相关 ...

  9. windows下apache配置虚拟主机

    因为有多个laravel项目需要配置根目录到public下面,所以要配置多个虚拟主机 方法一:添加端口号 第一步:进入apache的目录 Apache24\conf 找到 httpd.conf 文件, ...

  10. (转)Docker之Compose服务编排

    转自:https://www.cnblogs.com/52fhy/p/5991344.html Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过 ...