外贸网站推广收费襄阳做网站价格
外贸网站推广收费,襄阳做网站价格,深圳交易服务中心官网,做搜狗网站排名首页《嵌入式工程师自我修养/C语言》系列——迅速了解Ascii、GBK、Unicode、UTF-8、BCD各种编码格式的由来及关系 一、Ascii编码二、GBK编码三、Unicode编码四、UTF-8编码五、BCD编码六、其他网友的总结 快速学习嵌入式开发其他基础知识#xff1f; 返回专栏总目录 《嵌入式工程师自我修养/C语言》 一、Ascii编码 因为对于计算机来说只能识别0、1这两种字符0表示低电平1表示高电平所有的数据都是通过二进制来表示对于其他的比如说3、4、s、z、#等字符用二进制表示就需要一个约定的规范这就是Ascii的由来。 Ascii码表是用1个字节来表示128种字符一个字节8位可以组成256种字符首位默认为0所以ASCII最多就128个字符当首位为1的时候我们后面再讨论其中0-31和127表示控制字符他们是不可见字符。 32-126是可见字符48-57表示0-965-90为26个大写英文字母97-122是26个小写英文字母。如下表所示
二、GBK编码 现在英文和数字都有了但是我们中国汉字怎么表示呢此时GBK应运而生上面我们得知ASCII首位为0假如把它改成1就表示中文。GBK由2个字节来表示第一个字节的最高位是0则表示字母和数字假如是1则表示中文。
三、Unicode编码 Unicode则是收录了世界上所有的语言 但是在运用过程种会出现很多问题。比如一个3个字节的字符如何区分他是1个unicode还是3个Ascii还有假如使用Unicode英文字母高位都会设置成0这就造成了很大的浪费。因此UTF-8、UTF-16、UTF-32就出现以解决这些问题。
四、UTF-8编码
UTF-8的规则很简单就两条
对于单字节的字符最高位为0其实跟ascii表示一致对于n个字节的字符第一个字节的最高位开始算起总共有n个1第n1设为0后面每个字节的前两位都为10剩下的用字符对应的Unicode编码来表示如下表
Unicode符号范围十六进制UTF-8编码方式二进制0000 0000-0000 007F0xxxxxxx0000 0080-0000 07FF110xxxxx 10xxxxxx0000 0800-0000 FFFF1110xxxx 10xxxxxx 10xxxxxx0001 0000-0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
五、BCD编码 BCD编码主要用于数字0-9的压缩因为0-9二进制表示为0000 0000到0000 1001它们的前4位都是0把他们合并就生成一个新的字符。 比如2个字符’1’,’9’他们对应的Ascii为0x31和0x39因此表示形式则为2个字节0x31 0x39 假如用BCD格式来表示则将其数字对应的二进制前4位去掉然后合并即将00000001和00001001前4位去掉得到0001 1001得到新的1个字节0x19,这样看起来就跟十进制一样这就是BCD压缩码的原理。
六、其他网友的总结 中国人民通过对 ASCII 编码的中文扩充改造产生了 GB2312 编码可以表示6000多个常用汉字。汉字实在是太多了包括繁体和各种字符于是产生了 GBK 编码它包括了 GB2312 中的编码同时扩充了很多。中国是个多民族国家各个民族几乎都有自己独立的语言系统为了表示那些字符继续把 GBK 编码扩充为 GB18030 编码。每个国家都像中国一样把自己的语言编码于是出现了各种各样的编码如果你不安装相应的编码就无法解释相应编码想表达的内容。终于有个叫 ISO 的组织看不下去了。他们一起创造了一种编码 UNICODE 这种编码非常大大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统无论是全球哪种文字只需要保存文件的时候保存成 UNICODE 编码就可以被其他电脑正常解释。UNICODE 在网络传输中出现了两个标准 UTF-8 和 UTF-16分别每次传输 8个位和 16个位。于是就会有人产生疑问UTF-8 既然能保存那么多文字、符号为什么国内还有这么多使用 GBK 等编码的人因为 UTF-8 等编码体积比较大占电脑空间比较多如果面向的使用人群绝大部分都是中国人用 GBK 等编码也可以。 本文介绍的很简单主打一个科普的作用这些知识了解即可也不用过度深究。本文基本都是搬运整理以下两篇文章的内容常用编码格式介绍、常见编码方式之间的区别原文作者无从考究侵删。 返回专栏总目录 《嵌入式工程师自我修养/C语言》
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91759.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!