在做通信编程的时候,数据发送多采用串行发送方法,实际处理的时候多是以字节为单位进行处理的。在C/C++中 多字节变量与Byte进行转化时候比较方便 采用UNION即可
废话少说看示例:
typedef union
{
  double data_df;
  byte     data_b[8];
}DoubleYByte;
本示例实现了double与byte的相互转化
typedef union
{
  float data_f;
  byte data_b;
}FloatYByte;
本示例实现了float与byte的相互转化
其他的数据类型short int long等都可以采用上述示例转换 在C/C++中可以很容易的实现

  但是在上位机编程中,采用C#编程就比较麻烦,因为没有union可用
但是C#提供一个类system.BitConverter来专门解决这种转换问题,该类如下显示
方法
DoubleToInt64Bits    将指定的双精度浮点数转换为 64 位有符号整数。
GetBytes    已重载。 将指定的数据转换为字节数组。
Int64BitsToDouble    将指定的 64 位有符号整数转换成双精度浮点数。
ToBoolean    返回由字节数组中指定位置的一个字节转换来的布尔值。
ToChar    返回由字节数组中指定位置的两个字节转换来的 Unicode 字符。
ToDouble    返回由字节数组中指定位置的八个字节转换来的双精度浮点数。
ToInt16    返回由字节数组中指定位置的两个字节转换来的 16 位有符号整数。
ToInt32    返回由字节数组中指定位置的四个字节转换来的 32 位有符号整数。
ToInt64    返回由字节数组中指定位置的八个字节转换来的 64 位有符号整数。
ToSingle    返回由字节数组中指定位置的四个字节转换来的单精度浮点数。
ToString    已重载。 将指定的字节数组的每个元素的数值转换为它的等效十六进制字符串表示形式。
ToUInt16    返回由字节数组中指定位置的两个字节转换来的 16 位无符号整数。
ToUInt32    返回由字节数组中指定位置的四个字节转换来的 32 位无符号整数。
ToUInt64    返回由字节数组中指定位置的八个字节转换来的 64 位无符号整数。
若想把float类型转化为byte示例如下:
float a=1.23;
byte[] b=BitConverter.GetBytes(a);
  若想把变量b重新转化为float类型可以使用toSingle方法,示例如下:
float c=BitConverter.ToSingle(b,0);//应为a在b中其实字节为0,故第二个参数为0

还有就是string与byte[]的变换 如果知道就很简单
     byte[] byteArray = System.Text.Encoding.Default.GetBytes(  str  );
     string str = System.Text.Encoding.Default.GetString( byteArray );
  在System.Text.Encoding class中,还有很多其它有用的方法,像GetChars,从一个byte[]转成一个char[],等等,还有其它编码方式的,如 System.Text.UTF8Encoding class、System.Text.UnicodeEncoding class等,根据不同需要可选不同的class。 具体请参考MSDN

C# double float int string 与 byte数组 相互转化的更多相关文章

  1. c# string 和 byte[]数组之间转换

    在文件流读取和存储过程当中,经常涉及到byte[]数组形式存储数据,再此过程中也涉及到String类型字符串和byte[]的类型转换,下面我们举例说明一下. 现在有一个字符串: string str ...

  2. C++ char float int string 之间的转换

    string str = "123"; string 转 int int i = atoi( str.c_str() ); string 转 float float f = ato ...

  3. C# String与Byte数组的转换

    string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes(str); byte[] byteArray = Enc ...

  4. 对象与Byte数组相互转化工具方法

    /** * 对象转byte * @param obj * @return */ private byte[] ObjectToByte(Object obj) { byte[] bytes = nul ...

  5. byte数组和int之间相互转化的方法

    Java中byte数组和int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送者接收的数据都是byte数组,但是int类型是4个byte组成的,如何把一个整形in ...

  6. 【转】java中byte数组与int类型的转换(两种方式)----不错

    原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...

  7. byte[]数组和int之间的转换

    这里简单记录下两种转换方式: 第一种: 1.int与byte[]之间的转换(类似的byte short,long型) /** * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高 ...

  8. Go语言网络通信---string与int互转,int64与[]byte互转,int直接互转,string与[]byte互转

    string与int互转 #string到int int,err:=strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt( ...

  9. java基本数据类型转换成byte[]数组

    import java.io.UnsupportedEncodingException;  public class ConToByte {      /**     * double转换byte   ...

随机推荐

  1. 学习笔记之JAVA多线程

    Java程序设计实用教程 by 朱战立 & 沈伟 孙鑫Java无难事 Java 多线程与并发编程专题(http://www.ibm.com/developerworks/cn/java/j-c ...

  2. windows7怎么共享文件夹

    http://jingyan.baidu.com/article/d45ad148f06fef69552b80e6.html

  3. iOS常见文件及程序的启动原理

    一. iOS中常见文件 (一). Xcode6之前 创建项目,默认可以看见一个存放框架的文件夹 info文件以工程文件名开头,如:第一个项目-Info.plist 项目中默认有一个PCH文件 (二). ...

  4. RESTful HTTP实践

    http://www.infoq.com/cn/articles/designing-restful-http-apps-roth 摘要: 本文对RESTful HTTP的基础原理做了一个概览,探讨了 ...

  5. js事件(Event)知识整理[转]

    事件注册 平常我们绑定事件的时候用dom.onxxxx=function(){}的形式 这种方式是给元素的onxxxx属性赋值,只能绑定有一个处理句柄. 但很多时候我们需要绑定多个处理句柄到一个事件上 ...

  6. matlab——sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换)

    函数功能:生成稀疏矩阵 使用方法 :S = sparse(A) 将矩阵A转化为稀疏矩阵形式,即矩阵A中任何0元素被去除,非零元素及其下标组成矩阵S.如果A本身是稀疏的,sparse(S)返回S. S ...

  7. selendroid inspector xpth元素定位记录

    android自动化测试元素定位,目前发现appium官方的uiautomatorviewer一般的元素定位还行,但好多都找不到. 这个时候,可以考虑selendroid的inspector 官网:h ...

  8. 程序员你该学学如何设计PPT了,设计PPT的几大原则

    写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 大量的汇报及介绍工作,都离不开一个辅助工具-P ...

  9. MySQL - 启停服务

    Windows 环境 命令行方式 启动 MySQL 服务: net start mysql停止 MySQL 服务: net stop mysql 注:需要以管理员身份启动 cmd 后再执行上述命令. ...

  10. 反汇编windows htonl()函数

    因为自己在系统内核写网络程序有时候需要调用htons htonl 这样的函数进行转换,但由于内核只能调用c运行库,别的API不能调用.自己也接触过一点汇编,从来没有去学过.看过老码识途这本书前几章,如 ...