public string ByteArrayToHexString(byte[] data)
{
StringBuilder sb = new StringBuilder(data.Length * 2);
foreach (byte b in data)
sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));//.PadRight(3, ' '));
return sb.ToString().ToUpper();
} /// <summary>
/// 十六进制字符串转换成字节型
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public byte[] HexStringToByteArray(string s)
{
s = s.Replace(" ", "");
byte[] buffer = new byte[s.Length / 2];
for (int i = 0; i < s.Length; i += 2)
buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
return buffer;
}
{
StringBuilder sb = new StringBuilder(data.Length * 2);
foreach (byte b in data)
sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));//.PadRight(3, ' '));
return sb.ToString().ToUpper();
} /// <summary>
/// 十六进制字符串转换成字节型
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public byte[] HexStringToByteArray(string s)
{
s = s.Replace(" ", "");
byte[] buffer = new byte[s.Length / 2];
for (int i = 0; i < s.Length; i += 2)
buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
return buffer;
}
解决方案 »
- aspx页面textbox无法输入
- 如何对excel文件记录进行条件查询
- console.writeline问题
- (在线等)datagrid中如何根据条件设置每一行的背景色
- 提示'='号附近有错误?
- 请问哪里可以下载Visio 2003 for Enterprise Architects?
- 咋不能删除控件呢?解决了立马结贴!
- 为了不让<<Visual C#.Net 核心网络核心编程>> 误导大家对异步Socket编程的理解,我将我得源代码贴出,大家请帮测试.(1)
- 如何将Installshield 做的安装程序变成一个单独的文件?
- vs.net beta1 集成的那个visual foxpro 7.0是个什么版本啊,和一般版本有什么区别?
- 关于自动识别图像上的数字技术,并且显示出来,有什么好的建议?
- 数据字典是什么
public string ByteArrayToHexString(byte[] data)
{
//也可以写成StringBuilder sb = new StringBuilder(). 由于目标字符串长度可以预测,直接在构造函数中指定长度可以提高效率
StringBuilder sb = new StringBuilder(data.Length * 2); foreach (byte b in data)
{
//Convert.ToString(b, 16) 将 byte转换成16进制数。 如 0xaa => "aa", 0x0b => "b"
//PadLeft(2, '0') 对于长度小于2的字符串,左边补'0'对齐
//这句也可以写成sb.Append(b.ToString("x2"));
sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));//.PadRight(3, ' '));
} //StringBuilder 转换成 string,并将小写字母转换成大写。 "aa"=>"AA"
return sb.ToString().ToUpper();
} /// <summary>
/// 十六进制字符串转换成字节型
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public byte[] HexStringToByteArray(string s)
{
// 去掉空格
s = s.Replace(" ", ""); //目标byte数组的长度是字符串长度的一半,因为2个字符描述一个byte
byte[] buffer = new byte[s.Length / 2]; for (int i = 0; i < s.Length; i += 2)
{
//s.Substring(i, 2),取s中i位置开始的2个字符长的子串
//Convert.ToByte(..., 16).按16进制转换成byte。
buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
}
return buffer;
}