字符串0x12怎么转换成十六进制数, byte a =byte.Parse("0x12");这样报字符串格式不正确

解决方案 »

  1.   

     int[] workBUF = new int[11] { 54, 33, 84, 222, 55, 65, 88, 454, 342, 212, 231 };  string on ="0x" +DtoX(workBUF[i]).Trim();
    DtoX(workBUF[i])这个是转换成十六进制,
     byte a =byte.Parse(on);在转十六进制格式,怎么不可以?
      

  2.   


    byte.Parse(on);on必须是一个字符串
      

  3.   


                string s = "0x12";
                int i = Convert.ToInt32(s,16);
      

  4.   

    byte.Parse(on, System.Globalization.NumberStyles.AllowHexSpecifier);on必须去掉Ox
      

  5.   

    "0x" +DtoX(workBUF[i]).Trim()这是十六进制格式,问题是怎么转换成十六进制数据呢
      

  6.   

    int[] workBUF = new int[11] { 54, 33, 84, 222, 55, 65, 88, 454, 342, 212, 231 };            for (int i = 0; i < workBUF.Length; i++)
                {
                    string num = Convert.ToString(workBUF[i],16);
                   
                    byte bt = Convert.ToByte(num);                byte r = 0x36;
                    if (r==0x36)
                    {
                        r = 0x4f;
                    }
                }
    但当i=3,num=de,byte bt = Convert.ToByte(num);就不错,字符串格式不对
      

  7.   

    首先,0x12不是一个有效的16进制字符串,如果你要转换将一个字符串转换为16进制数据,它必须是合法的16进制数据。
    其次,你要进行数据转换,可以查看一下这两个方法,BitConvert和Convert,里边都有封装好的数据转换。