C#中在把字符串 string strCW = "5F371EEA2C787EB6140EAFCA39411376";转换 Convert.ToInt32(strCW, 16); 报下面异常信息值对于 UInt32 太大或太小 有没解决办法?

解决方案 »

  1.   

    Convert.ToInt64(strCW, 16);
      

  2.   

    string strCW = "5F371EEA2C787EB6140EAFCA39411376";
    List<byte> data = new List<byte>();
    Regex.Replace(strCW, "[A-F0-9]{2}", delegate(Match m) { data.Add(byte.Parse(m.Value, System.Globalization.NumberStyles.HexNumber)); return ""; });
    //data就是你要的
    你得到16个字节,如何处理是你的事情。UInt32是32位,4个字节。
    BitConverter.ToInt32(data.ToArray(), 0);可以得到最前面4个字节,变成数字。
      

  3.   


    试了一下,下面异常信息值对于 UInt64 太大或太小
      

  4.   

    BitConverter.ToInt64(data.ToArray(), 0);
      

  5.   


                string strCW = "5F371EEA2C787EB6140EAFCA39411376";
                byte[] bytes = Encoding.ASCII.GetBytes(strCW);
                long num = BitConverter.ToInt64(bytes, 0);