字节和字符,字符编码
★字节:字节(byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8(Bit)二进制。(0~255或者0x00~0xFF)。在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。对于符号来说,英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”1个字节的大小,中文句号2个字节的大小
★字符(char):是指计算机中使用的字母、数字、字和符号,包括:123ABC~•#%……—*()——+等等,相当于这些东西的统称。所以,1个汉字字符会占用两个英文字符的位置,存储需要2个字节;1个英文字符存储只占一个英文字符的位置,存储需要1个字节;2个数字为一个字节。
传输的过程中 5A 就代表一个字节
一个简体中文汉字,是一个字符,占2数字转unicode编码个字节。(编码方式:gb2312,代码页:936)
例如:
一个门禁控制器的序列号S/N40000,40000转化为十六进制是9C 40,一般我们写成【低位在前,高位在后】,即409C
C#代码中:
char a=’’;//这个“杨”,是一个字符,gb2312编码为2个字节。
★关于char类型说明如下:
Char类型的范围在0x0000~0xFFFF(0~65535)之间,可隐式转化为int,ushort,long,ulong,decimal,double等类型,如下代码正确:
int a=’a’;//等价于int a=97;//aAscii码是97
if(‘1’==49){Console.WriteLine(“1ASCII码是49”);}
int x=Convert.ToInt32(‘’);//x是一个整数
char类型字符在0~127之间和ASCII码表一致。
简体中文字符主要在20000~40000之间。
C#代码如下:(使用System.Text命名空间)
int x = 'a';
            Console.WriteLine(x);
            x = '';
            Console.WriteLine(x);
            string s = "-abc";
            //字符串s使用Unicode编码(统一的字符编码标准,采用双字节对字符进行编码)
            byte[] bufferUnicode = Encoding.Unicode.GetBytes(s);
            Console.WriteLine("使用Unicode编码字符串s:");
            foreach (byte buffer in bufferUnicode)
            {
                Console.WriteLine(buffer);
            }
            Console.WriteLine();
            //字符串s使用gb2312(简体中文)编码(中文编码成两个字节,数字和字母编码成一个字节)
            byte[] bufferGb2312 = Encoding.GetEncoding("gb2312").GetBytes(s);
            Console.WriteLine("使用gb2312编码字符串s:");
            foreach (byte buffer in bufferGb2312)
            {
                Console.WriteLine(buffer);
            }
            Console.WriteLine();
            //字符串s使用ASCII(美国信息交换标准码)编码(都编码为一个字节)
            byte[] bufferAscii = Encoding.ASCII.GetBytes(s);
            Console.WriteLine("使用ASCII编码字符串s:");
            foreach (byte buffer in bufferAscii)
            {
                Console.WriteLine(buffer);
            }
            Console.WriteLine();
★运行效果如下图:
★注:
数字0的ASCII码是48,连字符-的ASCII码是45,字母a的ASCII码是97
汉字“杨”用Unicode编码是104 103(两个字节)
汉字“杨”用gb2312编码是209 238(两个字节)
汉字“杨”用ASCII编码是63 (一个字节)
数字“1”用Unicode编码是49 0 (两个字节)
数字“1”用gb2312编码是49 (一个字节)
数字“1”用ASCII编码是49(一个字节)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。