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

字节数组,转16进制字符串 谢谢
有个数组,里面存的是16进制的内容

 现在想转成 16进制格式的字符串格式

 比如数组大小现在有4个字节,分别是 :0x11,0x02,0x03,0xff

 想要的字符串格式是:"110203ff"
 
 要怎么来实现呢比较好呢?
 
 发现在转换时,,不足两位的16进制,转为字符串时,会省略高位的“0”
 现在处理是,先判断字符长度,不足两位,高位补“0”,感觉不是很好呀
 
 有更好的办法么?
 谢谢



------解决方案--------------------
C# code

            int[] arr = new int[] { 0x11, 0x02, 0x03, 0xff };
            string s = "";
            foreach (int i in arr)
            {
                s += Convert.ToString(i, 16).PadLeft(2,'0');
            }
            MessageBox.Show(s);

------解决方案--------------------
C# code

byte[] arr = new byte[1024];
arr[0] = 0x11;
arr[1] = 0x02;
arr[2] = 0x03;
arr[3] = 0xff;

string s = "";
for (int i = 0; i < arr.Length && arr[i] > 0; i++)
{
    s += arr[i].ToString("x2");
}
或者
string s = string.Join("", Array.ConvertAll(Array.FindAll(arr, o => o > 0), o => o.ToString("x2")));