美文网首页
计算机如何存储数据

计算机如何存储数据

作者: 饥人谷_风争 | 来源:发表于2017-09-23 18:38 被阅读0次

    1个字节8位,不够8位左边加0凑够8位。

    计算机内存存储 0 和 1

    计算机内存之中只存储0和1(二进制),通过硬件内存中的晶体管是否充电来存储0和1。不充电代表0,充电代表1。
    纵列的8位一存,以横行的8列控制,当横行和纵列同时充满电的时候,横纵确定的那一位为1。
    计算机刷新,不断对内存中的晶体管进行充电来保持计算机的正常运行。

    存储数字

    计算机之中以二进制的模式来存储数字。
    所有非二进制的数字(如十六进制数、八进制数、十进制数)都会被转换成二进制存储。

    存储正整数

    存储正整数时,使用该正整数的原码(二进制数)。

    存储负整数

    存储负整数时,用其对应正数的补码表示。一个负数的补码等于该负数的相反数的反码加1。(如:-5的补码表示:-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011))

    存储小数

    存储带小数的数字时,正数部分按照以上规则,小数部分以浮点数的形式存储。
    十进制小数转二进制小数(1/10为底的小数转化为1/2为底的小数)

    0.75(10) = 7 * 1/10 + 5 * 1/10^2
             = n1 * 1/2 +n2 * 1/4
             = 0.5 + 0.25
             = 1 * 1/2^1 + 1* 1/2^2
             = 0.11(2)
    从右往左数
    

    存储字符

    美国国家标准学会制定ASCII(美国信息交换标准代码)(1个字节表示一个字符),将英文字符和常用符号编号表示。一个相应的字符对应一个特定的十进制数。存储某个字符,就存储该字母对应ASCII值的二进制值。
    参考表链接

    存储中文字符

    中国自主制定GB 2312(中国国家标准简体中文字符集)字符集(2个字节表示一个字符),包括6763个汉字。
    之后微软推出GBK字符集,扩展GB 2312字符集,可以存储生僻字/繁体字/日语和朝鲜语等。

    存储所有字符

    Unicode联盟将全球字符编号,编成Unicode字符集(4个字节表示一个字符)。
    截止2016年6月,已经又128237个字符。

    UTF-8存储Unicode

    UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8用1到6个字节编码Unicode字符.
    UTF-8编码规则:如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。

    你 -> 00000000 00000000 01001111 01100000   Unicode
    你 -> 11100100 10111101 10100000         Utf-8
    前3位111表示有3个字节,第2个字节去掉10,第3个字节去掉10。二进制01001111 01100000
    

    现实问题

    JavaScript使用UCS-2编码

    后果

    • JavaScript无法表示\uFFFF之后的字符,某些情况下会出bug
    • JavaScript获取HTML某些字符的length时会多出1个长度。

    相关文章

      网友评论

          本文标题:计算机如何存储数据

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