string转化为Hex,又从Hex转化为string,请高手给下具体的代码。万分感谢

解决方案 »

  1.   

    string 为 字母和数字  无汉字
      

  2.   


            /// <summary>
            /// Hexbin 二进制数据用ASCII字符表示  例 字符'1'的hex是0x31表示为hexbin是 '3''1' 
            /// Hex: 二进制数据
             /// </summary>
            public static byte[] Hexbin2Hex(string Input)
            {
                byte[] bHexbin = Encoding.ASCII.GetBytes(Input);
                int nLen = bHexbin.Length / 2;
                byte[] bHex = new byte[nLen];            for (int i = 0; i < nLen; i++)
                {
                    if (bHexbin[2 * i] < 0x41)
                    {
                        bHex[i] = Convert.ToByte(((bHexbin[2 * i] - 0x30) << 4) & 0xf0);
                    }
                    else
                    {
                        bHex[i] = Convert.ToByte(((bHexbin[2 * i] - 0x37) << 4) & 0xf0);
                    }                if (bHexbin[2 * i + 1] < 0x41)
                    {
                        bHex[i] |= Convert.ToByte((bHexbin[2 * i + 1] - 0x30) & 0x0f);
                    }
                    else
                    {
                        bHex[i] |= Convert.ToByte((bHexbin[2 * i + 1] - 0x37) & 0x0f);
                    }
                }            return bHex;
            }        /// <summary>
            /// 上一函数的逆过程
            /// </summary> 
            public static void Hex2Hexbin(byte[] bHex, byte[] bHexbin, int nLen)
            {
                byte c;
                for (int i = 0; i < nLen; i++)
                {
                    c = Convert.ToByte((bHex[i] >> 4) & 0x0f);
                    if (c < 0x0a)
                    {
                        bHexbin[2 * i] = Convert.ToByte(c + 0x30);
                    }
                    else
                    {
                        bHexbin[2 * i] = Convert.ToByte(c + 0x37);
                    }
                    c = Convert.ToByte(bHex[i] & 0x0f);
                    if (c < 0x0a)
                    {
                        bHexbin[2 * i + 1] = Convert.ToByte(c + 0x30);
                    }
                    else
                    {
                        bHexbin[2 * i + 1] = Convert.ToByte(c + 0x37);
                    }
                }
            }
      

  3.   

    private static byte[] strToToHexByte(string hexString)
            {
                hexString = hexString.Replace(" ", "");
                if ((hexString.Length % 2) != 0)
                    hexString += " ";
                byte[] returnBytes = new byte[hexString.Length / 2];
                for (int i = 0; i < returnBytes.Length; i++)
                    returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
                return returnBytes;
            }
      

  4.   


                String str = "A5";            Int64 i = Convert.ToInt64(str, 16);
                Console.WriteLine(Convert.ToString(i,16));