数据存储的本质
问题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