#16进制字符串转浮点数_VS2012 C# 16进制数与字符串的互换

#编程基础##我要上头条#

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


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

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


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

三、代码

        //字符串转换为16进制字节数组        private byte[] TranslateStringToHexArray(string AsciiString)        {             int cnt = 0;            string inputAsciiArray= "";            //1、将字符串按每两个字符拆分并插入逗号为分隔符            for (int i = 0; i < AsciiString.Length; i++)            {                char temp = AsciiString[i];                if(temp!=' ')                {                    inputAsciiArray += temp;                    cnt++;                    if (cnt >= 2)                    {                        cnt = 0;                        inputAsciiArray += ",";                    }                }            }            //2、将拆分后的字符串分离为字符串数组            string[] bStringArray = inputAsciiArray.Split(new char[] { ',', ' ' });            cnt=0;            for (int i = 0; i < bStringArray.Length; i++)            {                if (bStringArray[i].Trim() != "") cnt++;            }            byte[] bArray1=new byte[cnt];            cnt = 0;            //3、将字符串数组转换成字节数组并检测字符是否合法            for (int i = 0; i < bStringArray.Length; i++)            {                if (bStringArray[i].Trim() != "")                {                    try                    {                        bArray1[i] = Convert.ToByte(bStringArray[i].Trim(), 16);                        cnt++;                    }                    catch (Exception E)     //发生错误时提示非法字符                    {                        //string ErrMsg = " " + bStringArray[i] + " " + E.Message;                        string ErrMsg = " 第 " +(i*2+1).ToString() + " 个字符 "+ bStringArray[i] +" 非法 " + E.ToString();                        MessageBox.Show(ErrMsg, "提示");                        break;                    }                }            }            //4、将合法转换后的字节数组输出            byte[] bArray2 = new byte[cnt];            for (int i = 0; i < cnt; i++)            {                 bArray2[i]=bArray1[i];            }            return bArray2;        }
        //字节数组转换为字符串        private string TranslateHexArrayToString(byte[] InputByteArray,bool AddBlankFlag)        {            string HexString = "";            if (AddBlankFlag == true)   //确定是否需要插入特殊符号                            {                for (int i = 0; i < InputByteArray.Length; i++)                {                    HexString += InputByteArray[i].ToString("X2")+ " ";     //字节数据转换为字符(并插入空格)                }            }            else                         //字符串终字节间不插入空格             {                for (int i = 0; i < InputByteArray.Length; i++)                {                    HexString += InputByteArray[i].ToString("X2");          //字节数据转换为字符                }            }            return HexString;        }
ffc389bafde5cf67b5226d0352f2d505.png
f82354fd0ce15c1b6b4fc28c834c7fbd.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值