C# 中double型数据转换成byte数组? 比如有一个数a(例如-1234.4123),我想赋给byte[] data (假设有四个元素),应该怎么写。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://hi.baidu.com/linuxking/blog/item/8bf4b7c6b9f352109d163d27.html class Program{ static void Main(string[] args) { Console.WriteLine("Double and byte arrays conversion sample."); // Create double to a byte array double d = 12.09; Console.WriteLine("Double value: " + d.ToString()); byte[] bytes = ConvertDoubleToByteArray(d); Console.WriteLine("Byte array value:"); Console.WriteLine(BitConverter.ToString(bytes)); Console.WriteLine("Byte array back to double:"); // Create byte array to double double dValue = ConvertByteArrayToDouble(bytes); Console.WriteLine(dValue.ToString()); Console.ReadLine(); } public static byte[] ConvertDoubleToByteArray(double d) { return BitConverter.GetBytes(d); } public static double ConvertByteArrayToDouble(byte[] b) { return BitConverter.ToDouble(b, 0); }} double d = 12.4; byte[] arr = BitConverter.GetBytes(d); 应该是这个方法了,但它转换成的byte是什么意思。因为要发送到MATLAB中,所以需要知道解码方式。还有GetBytes这个方法怎么设置转换的byte数组的维数。先谢谢各位 double byte array ------ ---------- 0.0000000000000000E+000 00-00-00-00-00-00-00-00 1.0000000000000000E+000 00-00-00-00-00-00-F0-3F 2.5500000000000000E+002 00-00-00-00-00-E0-6F-40 4.2949672950000000E+009 00-00-E0-FF-FF-FF-EF-41 3.9062500000000000E-003 00-00-00-00-00-00-70-3F 2.3283064365386963E-010 00-00-00-00-00-00-F0-3D 1.2345678901234500E-300 DF-88-1E-1C-FE-74-AA-01 1.2345678901234565E+000 FA-59-8C-42-CA-C0-F3-3F 1.2345678901234567E+000 FB-59-8C-42-CA-C0-F3-3F 1.2345678901234569E+000 FC-59-8C-42-CA-C0-F3-3F 1.2345678901234569E+300 52-D3-BB-BC-E8-7E-3D-7E -1.7976931348623157E+308 FF-FF-FF-FF-FF-FF-EF-FF 1.7976931348623157E+308 FF-FF-FF-FF-FF-FF-EF-7F 4.9406564584124654E-324 01-00-00-00-00-00-00-00 NaN 00-00-00-00-00-00-F8-FF -Infinity 00-00-00-00-00-00-F0-FF Infinity 00-00-00-00-00-00-F0-7F Byte[] a = new Byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };Byte[] b = new Byte[] { 34, 56, 43 }; //simulate the result converted from double.if (b.Length < a.Length) b.CopyTo(a, a.Length - b.Length);a就是你想要的结果了。 double dblTest = 10.56;byte[] bytDbl = BitConverter.GetBytes(dblTest);Console.WriteLine(BitConverter.ToDouble(bytDbl,0).ToString()); 我的意思是:对于得到的字节矩阵b,怎么再转换回double型数据(因为要在matlab环境中转换,没有toDouble可用) 就是说由4.2949672950000000E+009 转换到00-00-E0-FF-FF-FF-EF-41的数学公式我需要知道 为什么调试dll 每次都要重启电脑 才能更新? winform 预览和打印的差别 望高手指点,有点小困难 对文件和文件夹的 复制 删除 移动 重命名 有哪位做过在自定义分页控件的基础上添加导出Excel功能的(winform) 请问下谁知道怎么样可以实现象openfiledialog那样设置保存文件的路径? 我的linq dbml文件为何总编译错误:未定义类型“System.Data.Linq.Mapping..." 哪位高手可以帮我看看这个组合问题? 入门问题 菜鸟问题,请教调用默认网络连接问题? sql读取 数据问题 怎么去取reapter的值`
byte[] arr = BitConverter.GetBytes(d);
先谢谢各位 double byte array
------ ----------
0.0000000000000000E+000 00-00-00-00-00-00-00-00
1.0000000000000000E+000 00-00-00-00-00-00-F0-3F
2.5500000000000000E+002 00-00-00-00-00-E0-6F-40
4.2949672950000000E+009 00-00-E0-FF-FF-FF-EF-41
3.9062500000000000E-003 00-00-00-00-00-00-70-3F
2.3283064365386963E-010 00-00-00-00-00-00-F0-3D
1.2345678901234500E-300 DF-88-1E-1C-FE-74-AA-01
1.2345678901234565E+000 FA-59-8C-42-CA-C0-F3-3F
1.2345678901234567E+000 FB-59-8C-42-CA-C0-F3-3F
1.2345678901234569E+000 FC-59-8C-42-CA-C0-F3-3F
1.2345678901234569E+300 52-D3-BB-BC-E8-7E-3D-7E
-1.7976931348623157E+308 FF-FF-FF-FF-FF-FF-EF-FF
1.7976931348623157E+308 FF-FF-FF-FF-FF-FF-EF-7F
4.9406564584124654E-324 01-00-00-00-00-00-00-00
NaN 00-00-00-00-00-00-F8-FF
-Infinity 00-00-00-00-00-00-F0-FF
Infinity 00-00-00-00-00-00-F0-7F
b.CopyTo(a, a.Length - b.Length);a就是你想要的结果了。
double dblTest = 10.56;
byte[] bytDbl = BitConverter.GetBytes(dblTest);
Console.WriteLine(BitConverter.ToDouble(bytDbl,0).ToString());
我的意思是:对于得到的字节矩阵b,怎么再转换回double型数据(因为要在matlab环境中转换,没有toDouble可用)