编码解码

1、为何要编码

  由于计算机底层只能识别二进制数字即0和1,因而所谓的“hello world”对于计算机当然是不认识的,为了让计算机能够识别这些汉子或者数字或者字符,自然就需要一套编码表帮助计算机去理解

  首先,在中文中,一个汉字占两个字节,一个字节占8位,即需要8个0或者1的数字排列在一块。

  重点:
    <1> 8个0或者1 有256种组合,如果没有编码,0000 0000 代表数字0,  0000 0010 代表数字2

    <2> 8个0或者1有256种组合。而·汉字常用的也有近4000了,如果每一种组合代表一个汉子,例如 0000 0000 代表了“你”,0000 0001 代表 ‘最’  0000 0010 代表‘帅’

那我们 对计算机发送这三个 8位二进制数字,它应该会给我们返回 “你最帅”这三个字没毛病对吧

    <3> 汉字很多,8位 只能存储 256 个汉子很明显满足不了需求,所以就需要16位字节存储65536个汉字或者其他的,所以计算机就能识别人类世界的各种字符了

    <4> 所有中文,英文 ,各种编码表所占字节可能都不相同,但是本质一样,你也可以自己设计独一无二的编码表。

 

2  编码延伸

  数据类型有 int ,string 等等,string代表字符,1是int类型,‘1’是字符类型,二者都为1 ,很明显 ,int类型的映射表应该被string类型所包含。所以int 类型的1 是可以被转换为string,而string无法被强制转换为int 类型

3  一通百通

  写代码,大问题小问题先考虑底层,知道底层结构,通常采用的都能是最有效的,代码量最少的方法

 

posted on 2018-07-13 11:56  姜伟  阅读(148)  评论(0编辑  收藏  举报

导航