コード例 #1
0
        public static byte[] FromHex(string hex)
        {
            if (hex == null)
            {
                return((byte[])null);
            }
            if ((hex.Length & 1) == 1)
            {
                throw new ArgumentException("Length must be a multiple of 2");
            }
            byte[] numArray1 = new byte[hex.Length >> 1];
            int    num1      = 0;
            int    num2      = 0;

            while (num1 < numArray1.Length)
            {
                byte[] numArray2 = numArray1;
                int    index1    = num1;
                string str1      = hex;
                int    index2    = num2;
                int    num3      = index2 + 1;
                int    num4      = (int)(byte)((uint)CryptoConvert.FromHexChar(str1[index2]) << 4);
                numArray2[index1] = (byte)num4;
                ref byte local  = ref numArray1[num1++];
                int      num5   = (int)local;
                string   str2   = hex;
                int      index3 = num3;
                num2 = index3 + 1;
                int num6 = (int)CryptoConvert.FromHexChar(str2[index3]);
                local = (byte)(num5 + num6);
            }
コード例 #2
0
        public static byte[] FromHex(string hex)
        {
            if (hex == null)
            {
                return(null);
            }
            if ((hex.Length & 1) == 1)
            {
                throw new ArgumentException("Length must be a multiple of 2");
            }
            byte[] array = new byte[hex.Length >> 1];
            int    i     = 0;
            int    num   = 0;

            while (i < array.Length)
            {
                array[i] = (byte)(CryptoConvert.FromHexChar(hex[num++]) << 4);
                byte[] array2 = array;
                int    num2   = i++;
                array2[num2] += CryptoConvert.FromHexChar(hex[num++]);
            }
            return(array);
        }