有个数组,里面存的是16进制的内容 现在想转成 16进制格式的字符串格式 比如数组大小现在有4个字节,分别是 :0x11,0x02,0x03,0xff 想要的字符串格式是:"110203ff"
要怎么来实现呢比较好呢?
发现在转换时,,不足两位的16进制,转为字符串时,会省略高位的“0”
现在处理是,先判断字符长度,不足两位,高位补“0”,感觉不是很好呀
有更好的办法么?
谢谢
要怎么来实现呢比较好呢?
发现在转换时,,不足两位的16进制,转为字符串时,会省略高位的“0”
现在处理是,先判断字符长度,不足两位,高位补“0”,感觉不是很好呀
有更好的办法么?
谢谢
解决方案 »
- C#中socket如何使用域名进行通信
- 主从窗体 最小化 我快疯了,帮帮忙吧,尽快
- 高人请进~,Windows Form中新线程采用异步委托调用,为何还有阻塞、假死的现象?
- c#中控件焦点的问题.在线等,谢谢.
- .net能不能像jbuilder一样自动生成get,set对应的属性
- 在Windows2000下用C#调用API(ExitWindowsEx)关机时出现的问题???
- vs2005使用oledb访问access数据库的疑问
- 用C#能不能编出像'热血传奇'一样的大型网络游戏?
- dll反混淆求助
- 求教,以TTX为数据源建立的rpt报表,不能正常显示传送DataSet的数据集记录???
- SQL2005 批量更新问题,急。
- windows服务停止问题
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);
按你上面的方法,,把数组内的东西全都弄出来了
比如 有1024个字节大小 字符串成了:"110203ff0000000000000000........."
而实际上只要 110203ff 就OK了
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")));