编程基础

引子

  • 前端程序员首先是一个程序员,其次是业务主攻前台而已
  • 等我入行了,要从
    • 计算机底层知识------------《编码:隐匿在计算机软硬件背后的语言》
    • 浏览器的原理--------------《图解HTTP》
    • 操作系统

几个方面入手

一、主要学习计算机如何存储数据

  • 1、存储0、1。计算机只识别0,1,1代表晶体管通电了,0代表未通电。
  • 2、存储数字。所有的数字在计算机看来都是0、1表示的一串二进制数字
  • 3、存储字符。ASCII码表(字符集),表示了美国人规定的常见字符。
  • 字符0-9:十进制是48-57
  • 字符A-Z:十进制是65-90
  • 字符a-z:十进制是97-122。97的二进制表示是 0110 0001。为了表示方便,采用16进制来表示,0X61。4个二进制位正好是一个16进制位,例如1111,表示15,所以0000-1111,可以表示0-F。
  • 4、存中文。ASCII码表未收录中文,所以诞生了中国人的GB2312,微软的GBK码表(字符集)。采用16个二进制位存储(2^16)
  • 5、存所有的字符。满足了韩文,颜文字等奇怪字符。Unicode码表(字符集)占32个二进制位,4个字节来存储。2^32=42亿多
  • 6、但是把 Unicode码表性价比不高,因为占用内存太高了,像英文只需要一个字节,却分配给了它4个字节。
    • 由此引申出了一个伟大的编码方式------UTF-8,共计四种编码方式
      • 0000 0000 0000 0000 0000 0000 0111 1111------------没有变化还是0111 1111,7个有效位不变,还是一个字节
      • 0000 0000 0000 0000 0000 0111 1111 1111-------------变为1101 1111 1011 1111 ,11个有效位拆成5+6的组合,2个字节存;最前面的110是告诉浏览器,我有两字节,以0分割,0后面的是有效的,你把两部分,拼接起来吧
      • 0000 0000 0000 0000 1111 1111 1111 1111---------------变为1110 1111 1011 1111 1011 1111。16个有效位拆成4+6+6的组合,3个字节存
      • 0000 0000 0001 1111 1111 1111 1111 1111----------------变为1111 0111 1011 1111 1011 1111 1011 1111,21个有效位拆成了3+6+6+6的组合,4个字节

你可能感兴趣的:(编程基础)