美文网首页饥人谷技术博客菜鸟朱茱霞的前端搬砖史
计算机基础---计算机是如何存储数据的

计算机基础---计算机是如何存储数据的

作者: 朱珠霞 | 来源:发表于2018-03-12 17:11 被阅读10次

首先明确一点,为什么要学习编程基础?

操作系统运行于 硬件 之上
浏览器运行于 操作系统 之上
html/css/JS运行于 浏览器 之上
html/css/JS和 数据 都来自于 服务器

硬件与软件:计算机的运行原理,推荐阅读 编码

学习编程基础可以把我们的知识面扩大,防止自己成为井底之蛙。


在计算机内部,只能存储存储与读取0和1,所有信息都是用二进制数串的形式表示的。

第一步:(内存)如何存储0和1? 计算机存储原理

  • 存储/读取
    1----高电平
    0----低电平

第二步:如何存储数字

计算机所有信息都是以二进制数串的形式存储。因此数字1 2 3 4 5 6 7 8 9 0都是经转化为二进制存储在计算机内。
负数会以 补码 的形式存储。
小数会以 浮点数 的形式存储

第三步:如何存储字符

为每个字符编号,使用ASCII美国信息交换标准代码
如果你想存储 a,那么就存储 97 对应的二进制:a -> 0110 0001

ASCII美国信息交换标准代码.png

第四步:如何存储中文

ASCII美国信息交换标准代码中只有数字与字母的字符,并没有中文。因此,我们国家推出了GB2312中国国家标准简体中文字符集

GB2312共收录 6763 个汉字,同时收录了包括拉丁字母,希腊字母,日文平假名及片假名字母,俄语西里尔字母在内的 682 个字符。

但在计算机的快速发展下,GB2312收录的字符已经不满足日常需要了,因此微软推出了 GBK 字符集

第五步:存储所有字符

Unicode 字符集 将全球字符编号都收录了,包括中日韩文字、藏文、盲文、楔形文字、 颜文字:-)、 绘文字😂
2016年6月时,Unicode 总共有 128237 个字符。在存储这么多字符的情况下,因此Unicode 使用了 4 个字节(32位)来存储一个字符。
如此一来,电脑的负荷就变大了,为了选取一种高性价比的方式来存储数据,于是出现了 UTF-8

同一个字符 a在普通unicode的方式下,它的转换如下:
a -> 00000000 00000000 00000000 011000012 = 006116
而经过UTF-8算法转化后:
a -> 01100001

总结:

  • 计算机只能存储0 和1 ,其他所有信息都是以二进制数串的形式存储。
  • 目前计算机字符集有 ASCII美国信息交换标准代码GB2312GBK 字符集Unicode
  • UTF-8 是一种编码方式,不是字符集!
  • 字符集历史
字符集历史.png
  • **历史问题 **
    JavaScript 使用了 Unicode 字符集,但是没有使用 UTF-8 编码

JavaScript 用了 UCS-2 编码!
因为 1995 年 UTF-16 还没被发明出来, JavaScript 也不想使用 UTF-32。
具体看这里

后果

ES5 无法表示 \uFFFF 之后的字符(如 \u1D306),某些情况下会出 bug

相关文章

网友评论

    本文标题:计算机基础---计算机是如何存储数据的

    本文链接:https://www.haomeiwen.com/subject/vyqnfftx.html