计算机字符与编码

一、位、字节、字
位       bit,二进制编码,可以存储0或1,位是计算机内存的基本构建块。
字节     byte,常用的计算机存储单位。对大部分机器来说1字节为8位,那么1个字节有0-255共256种可能。
字       word,设计计算机时给定的自然存储单位,对于最初的计算机来说,1字节为8位,现在已经增长到了32乃至64位。
二、编码
  1. 什么是编码?

    编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。

  2. 几种常见的编码:

    ASCII码

    一个字符占8位,二进制最前位固定位0,因此ascii码共有127个字符。

    unicode字符集

     一个字符占4个字节32位,很小的一部分就可以包含了全世界所有字符,所以对于常用字符4字节就太浪费空间了,为了节约浪费的存储空间,因此就有了utf-8、utf-16、utf-32这几种Unicode码实现方式。

    GB系列

     中文编码
三、UTF-8:

unicode的一种实现方式,一种变长存储方式,英文占1字节,中文占3字节,兼容ASCII编码。

  1. 编码规则:

    • 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码 因此对于英语字母,UTF-8编码和ASCII码是相同的。
    • 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
  2. BOM

    而UTF-16,UTF-32分别用2字节和4字节来表示一个字符,所以这里就涉及到字节的存储顺序,是低位在前还是高位在前,这样,BOM就产生了。BOM是文本文件开头的一个特殊标记,用一组特殊数字来标记文本文件的字节序。虽然UTF-8字节顺序是固定的,但为了兼容UTF-16和UTF-32也规定了UTF-8的BOM,用于标记UTF-8编码。不过UTF-8的BOM在不同平台的规定不同,要小心使用。

    BOM规定如下:
    ```text
    UTF-8 EF BB BF

    UTF-16(LE) FF FE

    UTF-16(BE) FE FF

    UTF-32(LE) FF FE 00 00

    UTF-32(BE) 00 00 FE FF
    ```

猜你喜欢

转载自www.cnblogs.com/yuandongxu/p/11740810.html