源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#中string与byte[]的转换帮助类-.NET教程,C#语言

  • 时间:2022-05-03 15:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#中string与byte[]的转换帮助类-.NET教程,C#语言
  主要实现了以下的函数  代码中出现的sidle是我的网名。  /**//*  * @author wuerping  * @version 1.0  * @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是 31  /// asc: ascii  /// uni: unicode  /// </summary>  public sealed class strhelper  {  hex与hexbin的转换#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  }  } 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部