usingSystem;usingSystem.Text;namespaceHh.Mes.Common.Json{publicstaticclassConverHelper{#region字符串和Byte之间的转化///<summary>///数字和字节之间互转///</summary>///<paramname="num"></param>///<returns></returns>publicstaticintIntToBitConverter(intnum){inttemp=0;byte[]bytes=BitConverter.GetBytes(num);//将int32转换为字节数组temp=BitConverter.ToInt32(bytes,0);//将字节数组内容再转成int32类型returntemp;}///<summary>///将字符串转为16进制字符,允许中文///</summary>///<paramname="s"></param>///<paramname="encode"></param>///<returns></returns>publicstaticstringStringToHexString(strings,Encodingencode,stringspanString){byte[]b=encode.GetBytes(s);//按照指定编码将string编程字节数组stringresult=string.Empty;for(inti=0;i<b.Length;i++)//逐字节变为16进制字符{result+=Convert.ToString(b[i],16)+spanString;}returnresult;}///<summary>///将16进制字符串转为字符串///</summary>///<paramname="hs"></param>///<paramname="encode"></param>///<returns></returns>publicstaticstringHexStringToString(stringhs,Encodingencode){stringstrTemp="";byte[]b=newbyte[hs.Length/2];for(inti=0;i<hs.Length/2;i++){strTemp=hs.Substring(i*2,2);b[i]=Convert.ToByte(strTemp,16);}//按照指定编码将字节数组变为字符串returnencode.GetString(b);}///<summary>///byte[]转为16进制字符串///</summary>///<paramname="bytes"></param>///<returns></returns>publicstaticstringByteToHexStr(byte[]bytes){stringreturnStr="";if(bytes!=null){for(inti=0;i<bytes.Length;i++){returnStr+=bytes[i].ToString("X2");}}returnreturnStr;}///<summary>///将16进制的字符串转为byte[]///</summary>///<paramname="hexString"></param>///<returns></returns>publicstaticbyte[]StrToHexByte(stringhexString){hexString=hexString.Replace(" ","");if((hexString.Length%2)!=0)hexString+=" ";byte[]returnBytes=newbyte[hexString.Length/2];for(inti=0;i<returnBytes.Length;i++)returnBytes[i]=Convert.ToByte(hexString.Substring(i*2,2),16);returnreturnBytes;}publicstaticstringASCIIToString(short[]ints){Stringstr="";foreach(variteminints){str+=Chr(item);}returnstr;}publicstaticstringChr(intasciiCode){if(asciiCode>=0&&asciiCode<=255){System.Text.ASCIIEncodingasciiEncoding=newSystem.Text.ASCIIEncoding();byte[]byteArray=newbyte[]{(byte)asciiCode};stringstrCharacter=asciiEncoding.GetString(byteArray);return(strCharacter);}else{thrownewException("ASCII Code is not valid.");}}publicstaticbyte[]StringToASCII(stringstr){System.Text.ASCIIEncodingasciiEncoding=newSystem.Text.ASCIIEncoding();returnasciiEncoding.GetBytes(str.PadRight(20,' '));}publicstaticshortAsc(stringcharacter){if(character.Length==1){System.Text.ASCIIEncodingasciiEncoding=newSystem.Text.ASCIIEncoding();shortintAsciiCode=(short)asciiEncoding.GetBytes(character)[0];return(intAsciiCode);}else{thrownewException("Character is not valid.");}}#endregion#region字节位操作//index从0开始//获取取第index位publicstaticintGetBit(byteb,intindex){return((b&(1<<index))>0)?1:0;}//将第index位设为1publicstaticbyteSetBit(byteb,intindex){return(byte)(b|(1<<index));}//将第index位设为0publicstaticbyteClearBit(byteb,intindex){return(byte)(b&(byte.MaxValue-(1<<index)));}//将第index位取反publicstaticbyteReverseBit(byteb,intindex){return(byte)(b^(byte)(1<<index));}#endregion}}