C#基础数据类型与字节数组(内存中的数据格式)相互转换(BitConverter 类)
2009-09-08 17:40
991 查看
在某种通讯协议中(如 Modbus),可能需要把一些基本的数据类型内存中的表示形式转换成以字节数组的形式,方便传送。C/C++中可以利用指针等操作完成,但C#中没有指针,咋办呢?可以用BitConverter类啊。
1,把double类型转换成byte数组,float类型的话,在1234.5678后加个F就行了,即1234.5678F
代码:
运行结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/03/7acfcea82ef5a1fc27af0dd0ee250783.png)
2,把byte数组转换成double类型
代码:
结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/03/4daa3fafeca0aa2dc7055ead8a5c520e.png)
1,把double类型转换成byte数组,float类型的话,在1234.5678后加个F就行了,即1234.5678F
代码:
private void button1_Click(object sender, EventArgs e) { byte[] byteArray; byteArray = BitConverter.GetBytes(1234.5678); MessageBox.Show(BitConverter.ToString(byteArray)); }
运行结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/03/7acfcea82ef5a1fc27af0dd0ee250783.png)
2,把byte数组转换成double类型
代码:
private void button2_Click(object sender, EventArgs e) { byte [] bb = new byte [8]; bb[0] = 0xAD; bb[1] = 0xFA; bb[2] = 0x5C; bb[3] = 0x6D; bb[4] = 0x45; bb[5] = 0x4A; bb[6] = 0x93; bb[7] = 0x40; double i = BitConverter.ToDouble(bb, 0); MessageBox.Show(i.ToString()); }
结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/03/4daa3fafeca0aa2dc7055ead8a5c520e.png)
相关文章推荐
- C#基础数据类型与字节数组(内存中的数据格式)相互转换(BitConverter 类)
- C#基础数据类型与字节数组(内存中的数据格式)相互转换(BitConverter 类)
- C#之基础数据类型和字节数组的转换
- 将基础数据类型与字节数组相互转换
- 在C#中将任意数值类型数据与字节数组相互转换的一个方法
- 字节数组与基础数据类型的转换
- C#控制台基础 字符串转换为ANSI格式的字节数组
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- C# 数据类型及相互转换及常用基础
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- java部分基础类型及时间格式的数据格式相互转换方法整理
- 字节数组与基础数据类型的转换
- 2、C#编程基础(三)——数据类型的相互转换
- C#控制台基础 字符串转换为UTF-8格式的字节数组
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
- 语言基础:C#输入输出与数据类型及其转换
- C#基础之数据类型转换
- C#基础-数据类型转换
- c#基础-----数据类型,转义字符,引用类型,类型转换
- Java中字节数组与基本数据类型的转换