在做通信编程的时候,数据发送多采用串行发送方法,实际处理的时候多是以字节为单位进行处理的。在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. [Effective C++ --026]尽可能延后变量定义式的出现时间

    引言 每一次构造和析构都需要成本,因此我们在设计代码的时候,应该尽可能考虑到构造和析构的成本. 第一节 延后实现 考虑有以下的代码: void encrypt(string& s); stri ...

  2. Maven学习小结(三 基本概念)

    1.Maven POM POM(Project Object Model)项目对象模型,是用Maven来管理项目里的一个叫做pom.xml的文件.所有的项目配置信息都被定义在这个文件中, 通过这个文件 ...

  3. javascript笔记02:严格模式的特定要求

    1.严格模式变量必须声明,不然会报错: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  4. c++ (P49—P68)

    1 c++语言并没有明确规定调用这个函数时实参的求值顺序,而是让编译器根据对代码进行优化的需要自行决定实参的求职顺序.这样就带来了二义性. function(a++,a*); //存在二义性 a++; ...

  5. Android开发了解——AIDL

    AIDL:Android Interface Definition Language,即Android接口定义语言. 什么是AIDL Android系统中的进程之间不能共享内存,因此,需要提供一些机制 ...

  6. CentOS 7 安装virtualBox

    sudo rpm -ivh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm sudo yum install VirtualBox-5.0

  7. Flash cs6 如何从FLA 文件导出sound文件

    Flash. How to export sound from the FLA file extract sound from a fla 第一个是图文教程,在下面还有"watch vide ...

  8. 初步接触html心得

    接触HTML大概有七天,做一下小总结,过过记忆. html大致可分为三部分:Dtd头.Head.Body三大部分. Dtd头:是用于浏览器编辑的,也就是俗话说的给电脑看的的东西. Head:内细分下大 ...

  9. Exchanger, Changing data between concurrent tasks

    The Java concurrency API provides a synchronization utility that allows the interchange of data betw ...

  10. 使用VERT.X构建分布式企业级应用

    谈到企业应用,就得谈分布式.低耦合.模块化.面向服务.可扩展性等等.早些时候的技术有CORBA和EJB,后面兴起的有WebService和MDB.但是这些技术不是学习.开发门槛高就是不那么轻量化.我现 ...