Exemple #1
0
        /// <summary>
        /// 字符串转换成16进制
        /// </summary>
        /// <param name="inString"></param>
        /// <param name="hex"></param>
        /// <returns></returns>
        public string StringTo16(string inString, EnumHex hex)
        {
            string outString = string.Empty;

            byte[] bytes = Encoding.Default.GetBytes(inString);

            for (int i = 0; i < bytes.Length; i++)
            {
                int    strInt = Convert.ToInt16(bytes[i] - '\0');
                string s      = strInt.ToString("X");//ToString("X")是将数字转换为16进制字符串
                if (s.Length == 1)
                {
                    s = "0" + s;
                }
                s          = s + AddSplitString(hex);
                outString += s;
            }
            return(outString);
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name=""></param>
        /// <param name="hex"></param>
        /// <returns></returns>
        public string BytesTo16(byte[] bytes, EnumHex hex)
        {
            string outString = string.Empty;

            for (int i = 0; i < bytes.Length; i++)
            {
                // 16进制数为一位时前面填充0   如果是一位的(0xA),此时为了对齐在数据前面加一个字符"0"(0x0A)
                if (bytes[i].ToString("X").Length < 2)
                {
                    //转成16进制数
                    outString += "0" + bytes[i].ToString("X") + AddSplitString(hex);
                }
                else
                {
                    //转成16进制数据
                    outString += bytes[i].ToString("X") + AddSplitString(hex);
                }
            }
            return(outString);
        }
Exemple #3
0
        /// <summary>
        /// 把16进制隔离符转换成实际的字符串
        /// </summary>
        /// <param name="hex">16进制隔离符枚举</param>
        /// <returns></returns>
        private string AddSplitString(EnumHex hex)
        {
            switch (hex)
            {
            case EnumHex.None:
                return("");

            case EnumHex.Blank:
                return(" ");

            case EnumHex.OX:
                return("OX");

            case EnumHex.Ox:
                return("Ox");

            default:
                return("");
            }
        }
Exemple #4
0
        /// <summary>
        /// 把byte[]直接转换成字符串,直接以2进制形式显示出来
        /// </summary>
        /// <param name="bytes"></param>
        /// <param name="hex"></param>
        /// <returns></returns>
        public string BytesTo2String(byte[] bytes, EnumHex hex)
        {
            string outSting = "";

            for (int i = 0; i < bytes.Length; i++)
            {
                string tempString = Convert.ToString(bytes[i], 2);
                if (tempString.Length != 8)
                {
                    string add0 = string.Empty;
                    for (int j = 0; j < 8 - tempString.Length; j++)
                    {
                        add0 += "0";
                    }
                    tempString += add0 + tempString + AddSplitString(hex);
                }
                else
                {
                    outSting += tempString + AddSplitString(hex);
                }
            }
            return(outSting);
        }
Exemple #5
0
 /// <summary>
 /// 把byte[]转换成String
 /// </summary>
 /// <param name="bytes">需要转换的byte[]</param>
 /// <param name="hex">隔离符</param>
 /// <returns></returns>
 public string BytesToString(byte[] bytes, EnumHex hex)
 {
     return(From16ToString(BytesTo16(bytes, hex)));
 }