York's Blog

计算机如何存储数据

为什么要学编程基础

//因为你首先是程序员,其次才是前端
一个程序员需要指导:

  1. 硬件与软件的合作:计算机的运行原理(《编码》);
  2. 最大的软件:操作系统-windows ,Mac OS,LINUX(维基百科);
  3. 自己写软件:数据结构&算法(《数据结构与算法》),研究排序算法,背一遍;
  4. 多人写软件:软件工程(《代码大全》);

前端为什么要学编程基础

  1. 操作系统运行在硬件上;
  2. 浏览器运行在操作系统上;
  3. HTML/CSS/JS运行与浏览器之上;
  4. HTML/CSS/JS和数据都来自于服务器;
    //防止成为井底之蛙!

计算机只能存0和1:

第一步:(内存)如何存储0和1?

电池-一排8位
存储:1就充电,0就不充电;
读取:电量大于50%就是1,电量小于50%就是0;

第二步 :如何存储数字

十进制变二进制-为了方便书写,一般会将二进制数写为十六进制数
//知识扩展,请自行了解:
//负数会以补码的形式存储;
//小数会以浮点数的形式存储;

第三步 :如何存储字符:

将每个字符编号
ASCII美国信息交换标准代码;

第四步 :如何存储中文:

GB 2312中国国家标准简体中文字符表;
微软推出 GBK字符集(国标扩展);

第五步:如何存储所有字符:

将全球字符编号
Unicode 字符集
总共128237个字符

第六步:UTF-8

UTF-8是一种编码方式,不是字符集;
现实问题 :
字符集问题-为什么有些古老的中文软件和网站喜欢GBK,不用Unicode;
编码问题-Javascript使用了Unicode字符集,但是没有使用UTF-8编码
//Javascript用了USC-2编码
//因为1995年UTF-16还没被发明出来,Javascript也不想使用UTF-32;
后果-ES5无法表示\uFFF之后的字符(如\u1D306),某些情况下会出现BUG;

Proudly published with Hexo