编码

 

  • 计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果;
  • 编码:按照何种规则将字符存储在计算机中;解码:将存储在计算机中的二进制数解析显示出来;如果使用了错误的解码就会出现乱码
  • 字符:各种文字和符号的总称,包括各国文字、标点符号、图形符号、数字等。
  • 字符集(Charset):是一个系统支持的所有抽象字符的集合
  • 字符编码:将符号(一般是文字)转换为计算机可以接受的数字系统的数字
  • :存储数据的最小单位,内存里面有很多小格子,每个格子中只能存放一个 0 或 1
  • 字节:存储数据的基本单位
  • 1字节(Byte)等于 8 位(bit),不同编码方式-【汉字、英文、数字】所占字节不同
  • 常见的中文编码方式有GB2312、BIG5、GBK

1-原码、反码、补码--使用补码来做减法(符号位参与运算,减法变为加法)

  • 机器数:一个数在计算机中的二进制表示形式,最高位为符号位(正数为0, 负数为1)
  • 真值:去掉机器数符号位的数值
  • 原码:第一位表示符号, 其余位表示值
  • 反码:负数--符号位不变,其余各位取反
  • 补码:负数--符号位不变,其余各位取反, 最后+1
  • 补码的取值范围是[-128, 127]

1.1 ASCII

  • 它主要用于显示现代英语,使用7位(bits)表示一个字符,共128字符,最高位没有使用(0);
  • 最通用的单字节编码系统,有被Unicode追上的迹象
  • 再利用最高位进行编码的方式就称为非ASCII编码,如ISO-8859-1编码
  • ASCII的最大缺点是只能显示26个基本拉丁字母、阿拉伯数目字和英式标点符号,因此只能用于显示现代美国英语

1.2 GB2312

  • 一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字 
  • 基本满足了汉字的计算机处理需要
  • 对于人民、古汉语等方面出现的罕见字,GB2312不能处理,这导致了后来GBKGBK18030汉字字符集的出现

1.3 Unicode

  • 不同的编码在本地使用没有问题,一旦出现在网络中,由于不兼容,互相访问就会出现乱码
  • Unicode编码系统为表达任意语言的任意字符而设计
  • Unicode是字符集,UTF-32/ UTF-16/ UTF-8是三种字符编码方案
  • Unicode编码高字节总是00,包含大量英文的文本会浪费空间,所以,出现了UTF-8编码(变长编码)--1~4字节表示中英文
  • UTF-8是一种变长编码方式,使用1-4个字节进行编码;其中第一个字节与ASCII兼容;是互联网上使用最广的一种Unicode的编码规则

1.4 BIG5

  • 主要用于繁体中文(台湾,香港,澳门等)
posted @ 2019-09-02 16:02  不回头的浪子  阅读(151)  评论(0编辑  收藏  举报