与下位机做对接时经常需要用到16进制与字符串或者字byte组转换,本文提供byte数组转16进制字符串16进制字符串转byte数组,以及将普通字符串转16进制字符串的方法;例子经过项目考研,真实有效。

/// <summary>
        /// 此方法用于将普通字符串转换成16进制的字符串。
        /// </summary>
        /// <param name="_str">要转换的字符串。</param>
        /// <returns></returns>
        public static string StringToHexString(string _str)
        {
            //将字符串转换成字节数组。
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(_str);
            //定义一个string类型的变量,用于存储转换后的值。
            string result = string.Empty;
            for (int i = 0; i < buffer.Length; i++)
            {
                //将每一个字节数组转换成16进制的字符串,以空格相隔开。
                result += Convert.ToString(buffer[i], 16) + " ";
            }
            return result;
        }
        /// <summary>
        /// 此方法用于将16进制的字节数组转换成16进制的字符串。
        /// </summary>
        /// <param name="_hex16Byte">要转换的16进制的字节数组。</param>
        /// <returns></returns>
        public static string HexByteToHexString(byte[] _hex16Byte)
        {
            string result = string.Empty;
            //如果字节数组不为空。
            if (_hex16Byte != null)
            {
                for (int i = 0; i < _hex16Byte.Length; i++)
                {
                    //将每一个字节数组转换成16进制string类型的字符串,用空格分隔开。
                    result += _hex16Byte[i].ToString("X2") + " ";
                }
            }
            return result;
        }

        /// <summary>
        /// 此方法用于将16进制的字符串转换成16进制数组。
        /// </summary>
        /// <param name="hexString">要转换的16进制字符串。</param>
        /// <returns></returns>
        public static byte[] ToHexByte(string hexString)
        {
            hexString = hexString.Replace(" ", "");
            if ((hexString.Length % 2) != 0)
            {
                hexString = hexString + " ";
            }
            byte[] buffer = new byte[hexString.Length / 2];
            for (int i = 0; i < buffer.Length; i++)
            {
                buffer[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 0x10);
            }
            return buffer;
        }
最后修改:2022 年 09 月 29 日
免责声明:本站为个人博客,博客所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。访问和下载本站内容,说明您已同意上述条款。