#D220. 信息存储
信息存储
2.2.1.计算机中和存储有关的硬件设备
计算机的存储设备是计算机的重要组成部分,主要可以分为两大类:内存和外存。
内存是计算机的主存储器,用于存储和检索运行中的程序和数据。它的特点是读写速度快,但断电后数据会丢失。
内存可以分为随机存储器 (RAM
)和只读存储器 (ROM
)。
外存是计算机的辅助存储器,用于存储不能在内部存储器中存储的大量数据。它的特点是存储容量大,数据可以长期保存,但读写速度较慢。
外存包括常见的硬盘、U盘等,它们都可以与计算机连接以实现数据的存储和传输。
随着大数据应用越来越广,现在比较流行云存储。
云存储是将数据和文件存储在由第三方托管的多台虚拟服务器上,用户可以通过网络连接访问这些数据和文件。
提供商负责安全存储、管理、维护设备,以确保用户在需要时能够访问数据。
RAM
、ROM
、寄存器和 Cache
都是计算机中重要的存储设备,但它们之间存在着一些明显的异同。
相同点:
这些存储设备都是用来存储数据的,但它们的数据存储方式、读取速度和容量大小都有所不同。 不同点:
(1)数据存储方式:RAM
和 Cache
的数据存储在断电后会被清除,而 ROM
的数据存储在断电后仍然可以保持。
(2) 读取速度: 寄存器> Cache
> RAM
> ROM
, 寄存器的读取速度最快, Cache
次之, RAM
再次之, ROM
最慢。
(3) 容量大小: 寄存器< Cache
< RAM
< ROM
,寄存器的容量最小,Cache
的容量大但远小于 RAM
,ROM
的容量最大。
2.2.2.计算机中的信息存储
从上一章我们知道,在计算机系统中,信息被存储为二进制数据,即0和1。这些数据可以代表各种类型的信息,如数字、文本、图片和视频等。
在计算机存储中,衡量存储大小的主要单位是字节 (byte),1字节等于8比特(bit) , 即8个0或1。
实际应用中,通常使用的单位更大,如KB (千字节)、MB (兆字节)、GB (千兆字节)和 TB (太字节),每个之间的进率是1024。
1TB=1024GB1G=1024M1M=1024K 1K=1024B
(一)数字信息
计算机系统使用二进制系统,在这个系统中,每个数字都表示为一系列的0和1。例如,十进制数字10 在二进制中表示为1010。
(二)文本信息
文本信息在计算机中以字符的形式存储,每个字符都有一个对应的ASCII码。ASCII码是一个八位的二进制数,最高位是0,所以可用于表示128个不同的字符,包括字母、数字、标点符号等。
(三)图片信息
图片是由像素构成的,每个像素都有自己的颜色。颜色通常由 RGB (红绿蓝)值表示,每个值都在0-255的范围内。将这三个值组合在一起,就可以得到一个像素的颜色。图片在计算机中以位图 (bitmap)的形式存储,这是一个由二进制位组成的矩阵,每个位代表一个像素的颜色。
不同图片格式的存储空间计算方式略有不同,以下是一些常见图片格式的存储空间计算方法:
1、JPEG格式:
JPEG是一种有损压缩格式,其压缩算法会损失一部分图像数据。因此,JPEG格式的图片存储空间略小于无损压缩格式的图片存储空间,但相差不大。计算JPEG格式图片的存储空间时,需要考虑压缩比和图像质量等因素。
2、PNG格式:
PNG 是一种无损压缩格式,其压缩算法不会损失任何图像数据。因此,PNG格式的图片存储空间略大于有损压缩格式的图片存储空间。计算PNG 格式图片的存储空间时,需要考虑图像数据的复杂度和压缩比等因素。
3、GIF 格式
GIF 是一种同时支持无损和有损压缩的图片格式。其中,无损压缩适用于小图像和色彩数量不多的情况,而有损压缩适用于大图像和色彩数量较多的情况。计算GIF格式图片的存储空间时,需要考虑图像数据的复杂度和压缩比等因素。
4、BMP 格式:
BMP 是一种无压缩的图片格式,其存储空间等于图像数据的实际大小。计算 BMP 格式图片的存储空间时,需要考虑图像数据的复杂度和颜色深度等因素。
图片存储的计算公式:像素*(颜色深度/8)*压缩比
颜色深度是指用于显示或打印像素的颜色数目的多少。颜色深度通常用“位”来描述。
常见的颜色深度有1位、8位、24位和32位。
1位 (灰度图片)的图像包含2种颜色
8位的图像包含256种颜色
24位 (三原色)的图像包含1670万种颜色
32位的图像包含2^32 种颜色。
颜色深度越大,数字图像所具有的颜色和精确度就越丰富,但同时也会增加图片占用的存储空间。
颜色深度可以看作是一个调色板,它决定了屏幕上每个像素点支持多少种颜色。色深位数越高,颜色就越多,所显示的画面色彩就越逼真。
(四)视频信息
视频是由连续的图片帧组成的,每一帧都由像素和颜色信息组成。视频在计算机中通常以视频文件格式存储,如MP4或AVI。这些文件实际上是包含了一系列图片 (帧)和元数据的压缩文件。
图片存储的计算公式:像素*(颜色深度/8)*压缩比
颜色深度是指用于显示或打印像素的颜色数目的多少。颜色深度通常用“位”来描述。
常见的颜色深度有1位、8位、24位和32位。
1位 (灰度图片)的图像包含2种颜色
8位的图像包含256种颜色
24位 (三原色)的图像包含1670万种颜色
32位的图像包含2^32种颜色。
颜色深度越大,数字图像所具有的颜色和精确度就越丰富,但同时也会增加图片占用的存储空间。
颜色深度可以看作是一个调色板,它决定了屏幕上每个像素点支持多少种颜色。色深位数越高,颜色就越多,所显示的画面色彩就越逼真。
(四)视频信息 视频是由连续的图片帧组成的,每一帧都由像素和颜色信息组成。视频在计算机中通常以视频文件格式存储,如MP4或AVI。这些文件实际上是包含了一系列图片 (帧)和元数据的压缩文件。
2.2.3. C++中的信息存储
在 C++编程中,我们需要掌握的信息存储知识有:
(一)基本类型:包括整型、浮点型、字符型和布尔型等。 这些类型在内存中占用固定大小的存储空间,例如, int类型占用4个字节, char类型占用1个字节。 float (单精度浮点数) 占用4字节, double(双精度浮点数)占用8字节。这些类型在内存中以二进制形式直接存储。
(二)复合类型 这些类型可以由多个基本类型或复合类型的元素组成,并在内存中占用连续的存储空间,包括数组、结构体和联合体等。
1、数组 (Array) :
数组是一种线性数据结构,可以存储相同类型的多个元素。在内存中,数组的大小是元素数量乘以元素的大小。譬如, inta[10],占用的空间大小为40字节 (一共10个整型元素,每个元素占4个字节)
2、结构体 (Struct) :
结构体是一种可以将多种不同类型的数据组合在一起的数据结构。 例如,你可能会有一个表示人的结构体,包含姓名(字符串),年龄(整数)和身高 (浮点数)。在内存中,结构体的大小是所有成员大小的总和。
3、字符串 (String) :
字符串是一种特殊的数组,用于存储字符序列。在C++中,字符串以空字符 ('\0')结尾。内存中的字符串占用的空间是字符串中字符的数量加上结尾空字符。
(三)指针类型
指针 (Pointer):指针是一种特殊类型的变量,它存储的是另一个变量的内存地址,而不是值本身。通过指针,我们可以直接访问和修改另一个变量的值。 在内存中,指针本身占用固定的大小 (在位系统上是字节,位系统上是字节)。