[C#]ASCIIHelper

关键代码:

using System.Text;



namespace YanZhiwei.DotNet2.Utilities.Common

{

    /// <summary>

    /// ASCII 帮助类

    /// </summary>

    public static class ASCIIHelper

    {

        /*

         * 知识:

         * ASCII是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

         * 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像

         * a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用

         * 二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想

         * 互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上

         * 述常用符号用哪些二进制数来表示。

         * 

         * ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二

         * 进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

         */



        #region 转换为ASCII码

        /// <summary>

        /// 转换为ASCII码

        /// </summary>

        /// <param name="data">字符</param>

        /// <returns>ASCII码</returns>

        public static int ToASCII(this char data)

        {

            ASCIIEncoding _asciiEncoding = new ASCIIEncoding();

            char[] _array = new char[1] { data };

            return (int)_asciiEncoding.GetBytes(_array)[0];

        }

        /// <summary>

        /// 将字符串转换为转换为ASCII码

        /// </summary>

        /// <param name="data">字符串</param>

        /// <returns>byte[]</returns>

        public static byte[] ToASCII(this string data)

        {

            byte[] asciiBytes = null;

            if (!string.IsNullOrEmpty(data))

                asciiBytes = Encoding.ASCII.GetBytes(data);

            return asciiBytes;

        }

        #endregion

        #region 将ASCII码转换为字符

        /// <summary>

        /// 将ASCII码转换为字符

        /// </summary>

        /// <param name="asciiCode">SCII码</param>

        /// <returns>字符</returns>

        public static char ToChar(this byte asciiCode)

        {

            ASCIIEncoding _asciiEncoding = new ASCIIEncoding();

            byte[] _array = new byte[] { asciiCode };

            return _asciiEncoding.GetString(_array)[0];

        }

        #endregion

    }

}

单元测试:

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace YanZhiwei.DotNet2.Utilities.Common.Tests

{

    [TestClass()]

    public class ASCIIHelperTests

    {

        [TestMethod()]

        public void ToASCIITest()

        {

            int _actual = ASCIIHelper.ToASCII('.');

            Assert.AreEqual(46, _actual);



            byte[] _actualArray = ASCIIHelper.ToASCII("Hello");

            CollectionAssert.AreEqual(new byte[5] { 72, 101, 108, 108, 111 }, _actualArray);

        }



        [TestMethod()]

        public void ToCharTest()

        {

            char _actual = ASCIIHelper.ToChar(46);

            Assert.AreEqual('.', _actual);

        }

    }

}

你可能感兴趣的:(ASCII)