以狼烟为例,那么只有点火和没点两种状态,没法准确知道敌军的数量,这个时候就有人想到了一种表示方法优化
每一个狼烟均可以表示两种状态,点火和没点两种状态,分别用0和1表示编码
第1个狼烟:点着表示1个敌人,没点表示没有敌人code
0 1blog
第2个狼烟:没有点着的表示没有敌人,只点着第一个狼烟表示来了一个敌人,只点着第二个狼烟表示来了2个敌人,2个狼烟都点着表示3个敌人ci
0 1 0 2 unicode
00 01 10 11it
第三个狼烟:没有点着的时候表示没有敌人,只点第一个狼烟表示来了一个敌人,只点第二个狼烟表示来了2个敌人,只点第三个狼烟表示来了4个敌人,三个都点表示来了7个敌人二进制
0 1 0 2 0 4方法
000 001 011 010 100 101 111 101im
以此类推
第八个狼烟: 最多可表示255个敌人
0 1 0 2 0 4 0 8 0 16 0 32 0 64 0 128
计算机中最小存储单位是位(bit)
1byte=8bit
根据以上事例:
计算机中最小单位由一个8位的01组合存储,最大可表示255
若是咱们用一个二进制数字表示一个字符,好比说用“0100 0001”来表示A。
根据这个对应关系,获得如下表格
这就是编码
这套编码叫ASCII(美国(国家)信息交换标准(代)码),使用7个或8个二进制位进行编码的方案,最多能够给256个字符。使用了ASCII码,不一样的计算机之间就能够实现数据的标准化。可是ASCII使用的时候有一些限制。他最多之能够表示256个字符。若是有其余的字符就无能为力了。ASCII只能表示26个基本的拉丁字母、阿拉伯数字和英式标点。所以也只能用于显示现代美国英语。后来计算机世界开始有了其余语言,ASCII码已经没法知足需求。后来不一样语言的人各自为本身定制了一套属于本身的编码,同时与ASCII保持兼容。这些编码统称MBCS,到了这里你们都开始好似用双字节。(中国的叫GB*,好比GBK).在后来有人开始以为,这么多编码,有些编码之间还不兼容,太让人头大了,因而有这么一群人就坐在一块儿想出了一个办法:全部的语言都使用同一种编码,这种编码就是Unicode。 Unicode使用最少2个字节(1个字节=1BYTE=8bit=一个长度为8的二进制数) 来表示字母和符号等,有时候是4个字节。这样就解决了上面遇到的问题。Unicode又叫万国码,是业界的一种标准。可是有人又以为若是我要表示一个ASCII里的字符,使用unicode来表示不是太浪费空间了吗,因而就有人想出了另一种解决方案——UTF-8。UTF-8是对Unicode编码的压缩和优化,最大的特色是它采用了变长的编码方式,他再也不是最少使用2个字节,而是将全部的字符进行分类。ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存…