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 一通百通
写代码,大问题小问题先考虑底层,知道底层结构,通常采用的都能是最有效的,代码量最少的方法