数据存储的本质

问题1:计算机如何存储数据?

狭义数据分类:数值,符号(加减乘除,特殊符号,汉字等)

所有的数据(数据,图像,音频,视频)会转化成二进制数据,然后以二进制数据串的形式存储在计算机内部。

 

计算机系统只能存储和使用二进制0101。。。代表的数据

比如:UTF-8编码中,丁晓明 是3个字,转换成二进制可能是 0101011101010101010101。。。

 

计算机内存中的数据也是二进制吗?

计算机内存中数据也是二进制

问题2:计算机最小的存储单元是什么?

内存中运算的最小存储单位是字节,位运算也是在一个字节的存储单位的基础上进行的,

字节是计算机体系中(内存,磁盘)最小的可寻址单元,每个字节有个地址单元信息!

计算机各种存储器(内存,磁盘)的最小存储单位是字节,byte。

存储单元是CPU访问存储器的最小单位!

 

1byte由8位二进制码值组成,每一位二进制码叫比特;

1byte 的值域[00000000 ~11111111],能表示数字[0,255]

问题来了,计算机如何表示字符?

问题3:如何表示字符等人类能看懂的信息?为什么有编码/解码?

前提,计算机只能处理二进制的0/1数据;但是人并不能看懂0101;计算机如何表示字符呢?

为了让人可以操作计算机,就提出一种方案:固定的0101数字串代表固定的字母,字符,符号;这样人就能看懂了;

于是乎就有了Unicode方案,UTF-8方案,GBK方案;

 

 

编码和解码的存在就是让人和计算机能够联通!是2端的翻译!

编码的实质就是一种转换标准,什么样的二进制数字串,代表什么样的信息;将机器语言转换为人的语言;

解码的实质也是一种标准,将字符,符号等转换成机器语言。

 

问题又来了

一个字符占多少存储单元[byte]?

问题4:一个字符占多少存储单元byte?

英文字母 中文汉字

①ASCII码  1个字节 2个字节

②UTF-8编码  1个字节 3个字节【含繁体】

③Unicode编码  2个字节 2个字节

符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

④UTF-16编码  2个字节 2个字节【某些汉字需要4个字节】

⑤UTF-32编码 世界上任何字符的存储都需要4个字节。

 

问题3:计算机存储数据的单位是什么?

数据存储是以10进制表示,数据传输是以2进制表示的,所以1KB不等于1000B。

1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210

1B(byte,字节)= 8 bit(见下文);

1KB(Kibibyte,千字节)=1024B= 2^10 B;

1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;

1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;

1TB(Terabyte,万亿字节,太字节)=1024GB= 2^40 B;

1PB(Petabyte,千万亿字节,拍字节)=1024TB= 2^50 B;

1EB(Exabyte,百亿亿字节,艾字节)=1024PB= 2^60 B;

1ZB(Zettabyte,十万亿亿字节,泽字节)= 1024EB= 2^70 B;

1YB(Yottabyte,一亿亿亿字节,尧字节)= 1024ZB= 2^80 B;

1BB(Brontobyte,一千亿亿亿字节)= 1024YB= 2^90 B;

1NB(NonaByte,一百万亿亿亿字节) = 1024 BB = 2^100 B;

1DB(DoggaByte,十亿亿亿亿字节) = 1024 NB = 2^110 B;

问题4 :字节,比特,比特率

字节是数据存储的最小单位

一个字节由8个比特组成,1byte=8bit

一个字节就是一个8位的二进制数如:10010100   , 而其中的一个0/1就是1个bit;

一个字节能表示多大的数字?0~255

 

比特是计算机系统中最小的信息单位,比特是数据传输的最小单位

 

比特率 https://zh.wikipedia.org/wiki/比特率

比特率是单位时间内传输的bit数

数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,1bit/s是带宽的基本单位,所谓的带宽其实指的是传输速度的快慢,也就是指在一个固定的时间内(1秒),能通过的最大位数据。

比特率bit/s就是吞吐量,每秒能传递多少位的数据

 

参考

计算机是如何存储数据的总结- 网格存储字符法

 https://www.jianshu.com/p/3065e30dda48

为什么计算机最小的存储单位是字节?而最小到的传输单位是bit?

http://blog.csdn.net/ebw123/article/details/51420076

存储单元百度百科

https://baike.baidu.com/item/存储单元

字节百度百科

https://baike.baidu.com/item/字节

字符编码笔记:ASCII,Unicode 和 UTF-8

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

posted @ 2018-03-21 10:50  im向北  阅读(2314)  评论(0编辑  收藏  举报