博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中string与byte[]的转换帮助类
阅读量:6258 次
发布时间:2019-06-22

本文共 2468 字,大约阅读时间需要 8 分钟。

* @Date 2004/11/30 
* @Description: 
*/ 
using System; 
using System.Text; 
namespace SidleHelper 
/// <summary> 
/// Summary description for StrHelper. 
/// 命名缩写: 
/// Str: unicode string 
/// Arr: unicode array 
/// Hex: 二进制数据 
/// Hexbin: 二进制数据用ASCII字符表示 例 字符'1'的hex是0x31表示为hexbin是 '3''1' 
/// Asc: ASCII 
/// Uni: UNICODE 
/// </summary> 
public sealed class StrHelper 
#region Hex与Hexbin的转换 
public static void Hexbin2Hex(byte[] bHexbin, byte[] bHex, int nLen) 
for(int i=0; i<nLen/2; i++) 
if(bHexbin[2*i] <0x41) 
bHex[i] = Convert.ToByte(((bHexbin[2*i] - 0x30)<<4) & 0xf0); 
else 
bHex[i] = Convert.ToByte(((bHexbin[2*i] - 0x37)<<4) & 0xf0); 
}

if(bHexbin[2*i+1] <0x41) 

bHex[i] |= Convert.ToByte((bHexbin[2*i+1] - 0x30) & 0x0f); 
else 
bHex[i] |= Convert.ToByte((bHexbin[2*i+1] - 0x37) & 0x0f); 
public static byte[] Hexbin2Hex(byte[] bHexbin, int nLen) 
if(nLen%2 !=0) 
return null; 
byte[] bHex = new byte[nLen/2]; 
Hexbin2Hex(bHexbin, bHex, nLen); 
return bHex; 
public static void Hex2Hexbin(byte[] bHex, byte[] bHexbin, int nLen) 
byte c; 
for(int i=0;i<nLen;i++) 
c = Convert.ToByte((bHex[i]>>4) & 0x0f); 
if(c < 0x0a) 
bHexbin[2*i] = Convert.ToByte(c + 0x30); 
else 
bHexbin[2*i] = Convert.ToByte(c + 0x37); 
c = Convert.ToByte(bHex[i]&0x0f); 
if(c < 0x0a) 
bHexbin[2*i+1] = Convert.ToByte(c + 0x30); 
else 
bHexbin[2*i+1] = Convert.ToByte(c + 0x37); 
public static byte[] Hex2Hexbin(byte[] bHex, int nLen) 
byte[] bHexbin = new byte[nLen*2]; 
Hex2Hexbin(bHex, bHexbin, nLen); 
return bHexbin; 
#endregion

#region 数组和字符串之间的转化 

public static byte[] Str2Arr(String s) 
return (new UnicodeEncoding()).GetBytes(s); 
public static string Arr2Str(byte[] buffer) 
return (new UnicodeEncoding()).GetString(buffer, 0, buffer.Length); 
}

public static byte[] Str2AscArr(String s) 

return System.Text.UnicodeEncoding.Convert(System.Text.Encoding.Unicode, 
System.Text.Encoding.ASCII, 
Str2Arr(s)); 
}

public static byte[] Str2HexAscArr(String s) 

byte[] hex = Str2AscArr(s); 
byte[] hexbin = Hex2Hexbin(hex, hex.Length); 
return hexbin; 
public static string AscArr2Str(byte[] b) 
return System.Text.UnicodeEncoding.Unicode.GetString( 
System.Text.ASCIIEncoding.Convert(System.Text.Encoding.ASCII, 
System.Text.Encoding.Unicode, 
b) 
); 
}

public static string HexAscArr2Str(byte[] buffer) 

byte[] b = Hex2Hexbin(buffer, buffer.Length); 
return AscArr2Str(b); 
#endregion 
}

本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/articles/1499350.html,如需转载请自行联系原作者

你可能感兴趣的文章
libFM 简介
查看>>
非均衡数据分布的分类问题
查看>>
用JAVA代码构造一个日历
查看>>
oracle密码过期ORA-28002:口令将过期的解决方法
查看>>
webdriver css选取器
查看>>
浏览器窗口最大化
查看>>
B+树
查看>>
[转] Yslow-网站性能评分工具的图文解析
查看>>
简单工厂设计模式计算器
查看>>
WinFrom“动态”WebService
查看>>
【钢铁侠3】【高清1280版HD-RMVB.英语中字】【2013最新美国票房科幻动作大片】...
查看>>
Eclipse 修改JVM
查看>>
状态者模式 c#
查看>>
最长回文子串
查看>>
Node-mongodb链接数据库函数的封装
查看>>
在CentOS上简单安装tengine
查看>>
c语言——字符串变量、函数
查看>>
解决Type safety: The expression of type List needs
查看>>
POJ 3233 (矩阵)
查看>>
20161220
查看>>