日期:2014-05-18 浏览次数:20835 次
byte[] aa = new byte[]{63,204,204,205}
byte[] aa = new byte[]{3F,CC,CC,CD}
byte[] aa = new byte[] { 63, 204, 204, 205 }; string[] result = new string[aa.Length]; for (int i = 0; i < aa.Length; i++) { result[i] = aa[i].ToString("X2"); }
------解决方案--------------------
这个我写通信程序的时候遇见过,手头没有环境,不知道写的对不对。好像可以直接(byte)十进制 来强制转换的。不过你如果想判断大小的话,十进制和16进制是一样的,只有“显示”的时候才需要变成16进制,那可以用楼上的方法。希望你懂我的意思。
------解决方案--------------------
引用sys
string s = aa.JoinText(", ", "0x{0:X2}");
------解决方案--------------------
给Lambda表达式提供临时变量。
因为都在一个作用域里面,所以用不同的字母区分。
首先对原始数据作投影,变成 index(i) + value(v)的形式。
然后按照index分组,每相邻4个变成一组。
然后不要index了,只要value,转换成字节数组
再用BitConverter.ToSingle()投影成float
最后转化成数组。
建议你看下LINQ。以及MSDN的介绍。
------解决方案--------------------
你根本就不用管Byte中存的形式,
举个简单的例子
一个Int占4字节,就是4个Byte
你可以先用位运算">>"和"<<"把Byte数组拼接成你需要的数
具体可以查下MSDN中的位运算
------解决方案--------------------
http://www.cnblogs.com/Mainz/archive/2008/04/09/String_Byte_Array_Convert_CSharp.html
------解决方案--------------------
这真是个蛋疼的问题,byte里面存什么,不就是byte而已,你所看到的10进制是因为你显示的是十进制