字母与ASCII码之间的转换

1、先解释下两个名词,主要从百度百科中查询得到:
ASCII
(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
http://baike.baidu.com/view/15482.htm?fromtitle=ascii%E7%A0%81&fromid=99077&type=syn
Unicode
(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
http://baike.baidu.com/view/40801.htm

2、将字母转换为ASCII码,可以利用如下代码

private void btnToASCII_Click( object sender , EventArgs e )
{
    if( txtChar1.Text != string.Empty )
    {
        if( Encoding.GetEncoding( "unicode" ).GetBytes( new char[] { txtChar1.Text[ 0 ] } )[ 1 ] == 0 )
        {
            txtASCII1.Text = Encoding.GetEncoding( "unicode" ).GetBytes( txtChar1.Text )[0].ToString();
        }
        else
        {
            txtASCII1.Text = string.Empty;
            MessageBox.Show( "请输入正确的字母" , "错误" );
        }
    }
}

关于Encoding,可以查看下面这段拆开写的代码解释

//使用Encoding的GetEncoding方法得到Encoding的对象
Encoding e= Encoding.GetEncoding( “unicode” );

//调用Encoding对象的GetBytes方法,此方法接受一个字符串或字符数组作为参数,最后返回字节数组对象
byte[] b=e .GetBytes( “Hehe” );

//字节数组的第0个索引来得到字符串中第一个字母的ASCII码
string str= b[ 0 ].ToString();

MessageBox.Show(str);

注意:
如果上述代码中Encoding.GetEncoding( “unicode” ).GetBytes( txtChar1.Text )[0].ToString()没有制定字节数字第几个字符,即写成Encoding.GetEncoding( “unicode” ).GetBytes( txtChar1.Text ).ToString(),则最后的输出结果为“System.Byte[]”

3、将ASCII码转换为数字,可以利用如下代码

private void btnToChar_Click( object sender , EventArgs e )
{
    if( txtASCII2.Text != string.Empty )
    {
        int p;
        if( int.TryParse(txtASCII2.Text,out p) )
        {
            txtChar2.Text = ((char)p).ToString();
        }
        else
        {
            txtChar2.Text = string.Empty;
            MessageBox.Show( "请输入正确的数字" , "错误" );
        }
    }
}

这里相当于用了强制转换,于是我们也可以在字母转为ASCII码中也可以用强制转换试试:

private void btnToASCII2_Click( object sender , EventArgs e )
{
    if( txtChar1.Text != string.Empty )
    {
        try
        {
            txtASCII1.Text = ( (int)txtChar1.Text[ 0 ] ).ToString();
        }
        catch
        {
            MessageBox.Show( "请输入正确的字母" , "错误" );
        }
    }
}

发现输出结果也是一样的,所以这种方法也是可以的。

如果你有什么建议和指导,欢迎留言!
交流学习,才能更快成长!

你可能感兴趣的:(C#语言基础)