1、计算机分内存和外存
内存有:RAM(Random-Access Memory )指内存条 、 ROM(Read-Only Memory)用来存BIOS、Cache([kæʃ]高速 缓冲存储器,其中复制了频繁使用的数据以利于快速访问。存储了频繁访问的RAM位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。)
外存有:指硬盘HDD(Hard Disk Drive 硬盘驱动器),一般有机械盘和固态盘。
2、Unicode、utf-8、gbk,字节,字符之间的关系
Ascii编码(American Standard Code for Information Interchange,美国信息互换标准代码),用1byte(即8bit,最多256种状态)表示一个英文字母。0×20以下的字节状态称为”控制码”.他们又把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,这样计算机就可以用不同字节来存储英语的文字了。(注:0x20,,,0x表示使用的是16进制,20转换成10进制就是32.内存地址用的是16进制,因为16进制中FF 刚好是10进制的255.)
GB2312: 用两个大于127位的字节组合在一起,表示一个中文字符
GBK :只要开头的是大于127位的字节既可以。GBK标准包含了GB2312
unicode:Universal Multiple-Octet Coded Character Set 。ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符,对于ASCII里的那些“半角”字符,unicode包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于”半角”英文符号只需要用到低8位,所以其高8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。
面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF-8就是每次8个位传输数据,而UTF-16就是每次16个位。UTF-8就是在互联网上使用最广的一种unicode的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。从unicode到utf-8并不是直接的对应,而是要过一些算法和规则来转换。
作者:于洋
链接:https://www.zhihu.com/question/23374078/answer/69732605
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:于洋
链接:https://www.zhihu.com/question/23374078/answer/69732605
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。