16进制转字符串原理16进制数与字符串的互换字符串与16进制之间的转换




16进制转字符串原理16进制数与字符串的互换字符串与16进制之间的转换

2022-07-21 2:26:16 网络知识 官方管理员


一、字符串转换为16进制字节数组的步骤


1、将字符串按每两个字符拆分并插入逗号为分隔符;
2、将拆分后的字符串分离为字符串数组;
3、将字符串数组转换成字节数组并检测字符是否合法;
4、将合法转换后的字节数组输出;

二、将16进制数字节数组转换为字符串


1、确定是否需要在字节之间插入空格或其他特殊符号;
2、将字节数据转换为字符;
3、将转换后的字符串连接起来;
4、将连接后的字符串输出;

三、代码

//字符串转换为16进制字节数组privatebyte[]TranslateStringToHexArray(stringAsciiString){intcnt=0;stringinputAsciiArray="";//1、将字符串按每两个字符拆分并插入逗号为分隔符for(inti=0;i<AsciiString.Length;i++){chartemp=AsciiString[i];if(temp!=''){inputAsciiArray+=temp;cnt++;if(cnt>=2){cnt=0;inputAsciiArray+=",";}}}//2、将拆分后的字符串分离为字符串数组string[]bStringArray=inputAsciiArray.Split(newchar[]{',',''});cnt=0;for(inti=0;i<bStringArray.Length;i++){if(bStringArray[i].Trim()!="")cnt++;}byte[]bArray1=newbyte[cnt];cnt=0;//3、将字符串数组转换成字节数组并检测字符是否合法for(inti=0;i<bStringArray.Length;i++){if(bStringArray[i].Trim()!=""){try{bArray1[i]=Convert.ToByte(bStringArray[i].Trim(),16);cnt++;}catch(ExceptionE)//发生错误时提示非法字符{//stringErrMsg=""+bStringArray[i]+""+E.Message;stringErrMsg="第"+(i*2+1).ToString()+"个字符"+bStringArray[i]+"非法\r\n"+E.ToString();MessageBox.Show(ErrMsg,"提示");break;}}}//4、将合法转换后的字节数组输出byte[]bArray2=newbyte[cnt];for(inti=0;i<cnt;i++){bArray2[i]=bArray1[i];}returnbArray2;}
//字节数组转换为字符串privatestringTranslateHexArrayToString(byte[]InputByteArray,boolAddBlankFlag){stringHexString="";if(AddBlankFlag==true)//确定是否需要插入特殊符号{for(inti=0;i<InputByteArray.Length;i++){HexString+=InputByteArray[i].ToString("X2")+"";//字节数据转换为字符(并插入空格)}}else//字符串终字节间不插入空格{for(inti=0;i<InputByteArray.Length;i++){HexString+=InputByteArray[i].ToString("X2");//字节数据转换为字符}}returnHexString;}

16进制转字符串原理(16进制数与字符串的互换)(1)

16进制转字符串原理(16进制数与字符串的互换)(2)

发表评论:

最近发表
网站分类
标签列表