日期:2014-05-18  浏览次数:20835 次

BYTE[]数组里的是存的十进制,如何转换成十六进制?
BYTE[]数组里的是存的十进制,如何转换成十六进制?
例如
C# code

byte[] aa = new byte[]{63,204,204,205}


那么如何转换成
C# code

byte[] aa = new byte[]{3F,CC,CC,CD}



------解决方案--------------------
C# code
            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进制是因为你显示的是十进制