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进制是因为你显示的是十进制