存储数据获取信息
连接数据库代码
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=;pwd=;dbq="&server.mappath("xxx.mdb")
其中xxx.mdb表示你的数据库名称
建立记录集
set rs=server.createobject("adodb.recordset")
sql="select * from xxx"
rs.open sql,conn,1,1
如果是要添加或者修改数据,那么就改成
rs.open sql,conn,1,3
其中xxx表示你数据库中的某个表
读取数据库
rs("字段名")
修改数据库
rs.addnew
rs("字段名")=你要添加的内容
.....
rs.update
如果你是从上一个页面的文本框后的内容,那么先用request.form("文本框名称")获得提交内容,然后
rs.addnew
rs("字段名")=request.form("文本框名称")
.....
rs.update
这样就可以添加了
如果是修改的话
sql要写成
sql="select * from xxx where 字段名=你要修改的字段的名称,比如说where id=1这样"
rs.open sql,conn,1,3
注意这里就不要用rs.addnew了
直接
rs("字段名")=request.form("文本框名称")
.....
rs.update
这样就修改了数据。
2. 怎样读取数据库中存储的二进制图片文件
下面我们将示例一个图片文件读取存储至数据库并从数据库中读取图片信息并显示的案例:
1、首先读取硬盘上的某一具体图片文件,读取模式设置为readBinary方式:
<cffile
action
=
"readBinary"
file
=
"temp
directory
here#file.serverFile#"
variable
=
"test">
2、将读取出来的二进制内容存储至数据库中(注:数据库字段需设置成能存储图片类型的字段,如blob类型):
<cfquery
datasource
=
"datasource">
insert
into
imageTest
values
(<cfqueryparam
cfsqltype="cf_sql_blob"
value="#test#">)
</cfquery>
通过1、2两个步骤,我们轻松实现了读取图片文件并存储至数据库的操作过程。
3、从数据库中读取图片信息,该文件可命名为dispImage.cfm:
<!---
在此需特别注意enablecfoutputonly的压缩空白功能,如果不对该页面进行空白压缩,很可能会造成图片无法显示的问题
--->
<cfprocessingdirective
suppressWhiteSpace="yes">
<cfsetting
enablecfoutputonly="yes">
<!---
读取相应的图片信息
--->
<cfquery
datasource
=
"datasource">
select
image
from
imageTest
where
variable
here#
</cfquery>
<!---
设置浏览器输出的格式,我们将它设置为图片的JPG类型,用户可根据实际情况改动类型设置
--->
<cfcontent
type="image/jpg">
<!---
输出图片
--->
<cfoutput>#toString(imageTest.image)#</cfoutput>
</cfprocessingdirective>
<cfabort>
4、显示图片内容,调用dispImage.cfm页面:
<img
src
=
"dispImage.cfm?id=your
variable
here">
通过3、4两个步骤,我们也很容易的就完成了从数据库中读取图片信息并在页面显示的功能。
总结:实际上,除了图片文件可以如此处理,其它的文件也能通过类似方式进行处理,可将任意文件类型存储至数据库,只是文件大小的原因以及数据库存储读取速度性能限制,我们基本上还是不建议将文件存储至数据库,毕竟硬盘读取要快得多。
3. 如何取得数据库信息
取得视图的方法 系统存储过程 USE xxx EXEC sp_help 或者 获取指定数据库的视图: USE DBAudit SELECT sysobjects.name AS name, sysusers.name AS owner FROM sysobjects LEFT JOIN sysusers ON sysobjects.uid = sysusers.uid WHERE type = 'V' 获取指定数据库的视图的内容: EXEC sp_helptext xxxObject 取得存储过程的方法 系统存储过程 USE xxx EXEC sp_help 或者 获取指定数据库的存储过程或者扩展存储过程: USE DBAudit SELECT sysobjects.name AS name, sysusers.name AS owner, type FROM sysobjects LEFT JOIN sysusers ON sysobjects.uid = sysusers.uid WHERE type = 'P' OR type = 'X' 获取指定数据库的存储过程或者扩展存储过程的内容: EXEC sp_helptext xxxObject 无法获取加密的存储过程。扩展存储过程只能得到dll 程序名。 取得函数的方法 系统存储过程 USE xxx EXEC sp_help 或者 获取指定数据库的各种函数(内嵌函数等): USE DBAudit SELECT sysobjects.name AS name, sysusers.name AS owner, type FROM sysobjects LEFT JOIN sysusers ON sysobjects.uid = sysusers.uid WHERE type = 'FN' OR type = 'IF' OR type = ‘TF’ 获取指定数据库的函数的内容: EXEC sp_helptext xxxObject 只能获取用户定义的函数内容。 取得触发器的方法 系统存储过程 USE xxx EXEC sp_helptrigger xxxTable 或者 获取指定数据库的表的触发器: SELECT sysobj1.name AS name, sysusers.name AS owner FROM sysobjects AS sysobj1 LEFT JOIN sysobjects AS sysobj2 ON sysobj1.parent_obj = sysobj2.id LEFT JOIN sysusers ON sysobj1.uid = sysusers.uid WHERE sysobj1.type = 'TR'AND sysobj2.name = 'xxxTable' 取得索引的方法 系统存储过程 USE xxx EXEC sp_helpindex xxxTable 用户 系统存储过程 USE xxx EXEC sp_helpuser 角色 系统存储过程 USE xxx EXEC sp_helprole 第二部分: 对于oracle 而言: ?ORACLE 只能连接特定数据库,不能自动扫描数据库对象。ORACLE 表必须用用户来区别,否则表可能重名。ORACLE 不能区别系统表或者是用户表,因此只能由管理员选择扫描某些特定用户的表。 取得数据库名的方法 只能由用户指定数据库,不能自动扫描到特定数据库服务器上的所有数据库。 取得表的方法 存储数据库表的系统表/视图主要有: DBA_ALL_TABLES 描述数据库中所有的对象以及相关的表。 ALL_ALL_TABLES 描述数据库中所有的用户可以访问的对象以及相关的表。 USER_ALL_TABLES 描述数据库中当前用户拥有的对象以及相关的表。 DBA_ TABLES 描述数据库中所有相关的表。 ALL_ TABLES 描述数据库中所有的用户可以访问的相关的表。 USER_ TABLES 描述数据库中当前用户拥有的相关的表。 因此,可以从ALL_TABLES 中取得隶属于指定用户的表: SELECT TABLE_NAME FROM SYS.ALL_TABLES WHERE OWNER = 'DBAUDIT'; 取得隶属于指定表空间的表: SELECT TABLE_NAME FROM SYS.ALL_TABLES WHERE TABLESPACE_NAME = 'DBAUDIT'; 也可以不指定用户名,从而取得所有的表。 SELECT TABLE_NAME FROM SYS.ALL_TABLES; 取得列的方法 存储数据库表的列属性的系统表/视图主要有: DBA_TAB_COLUMNS 描述数据库中所有的表的列属性。 ALL_TAB_COLUMNS 描述数据库中所有的用户可以访问的表的列属性。 USER_TAB_COLUMNS 描述数据库中当前用户拥有的表的列属性。 ALL_TAB_COLS 描述数据库中所有的用户可以访问的表的列属性。 因此,可以从ALL_TAB_COLUMNS 中取得隶属于指定用户的表: SELECT COLUMN_NAME FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME = 'TASK' AND OWNER = 'DBAUDIT'; 取得视图的方法 存储数据库视图的系统表/视图主要有: DBA_VIEWS 描述数据库中所有的视图的属性。 ALL_VIEWS 描述数据库中所有的用户可以访问的视图的属性。 USER_VIEWS 描述数据库中所有的当前用户拥有视图的属性。 因此,可以从ALL_VIEWS 中取得隶属于指定用户的视图: SELECT VIEW_NAME FROM SYS.ALL_VIEWS WHERE OWNER = 'DBAUDIT'; 取得存储过程的方法 存储系统对象的系统表/视图有: DBA_OBJECTS 描述数据库中所有的对象。 ALL_OBJECTS 描述数据库中所有的可以访问的对象。 USER_OBJECTS 描述数据库中所有的当前用户拥有的对象。 SYS_OBJECTS 描述数据库中所有的系统对象。 对象类型有: CONSUMER GROUP CONTEXT DIRECTORY FUNCTION INDEX INDEX PARTITION INDEXTYPE JAVA CLASS JAVA DATA JAVA RESOURCE JAVA SOURCE LIBRARY LOB MATERIALIZED VIEW OPERATOR PACKAGE PACKAGE BODY PROCEDURE QUEUE SEQUENCE SYNONYM TABLE TABLE PARTITION TRIGGER TYPE TYPE BODY VIEW 因此,取得存储过程可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE'; 取得隶属于某个用户的存储过程可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE' AND OWNER = ‘DBAUDIT’; 同样,取得其他的对象也可以用这个方法,包括表,视图等。 取得存储过程内容的方法 对象类型为类型、类型体、过程、函数、包、包体,JAVA 源代码的所有对象的源代码都存储在几个系统表/视图中: DBA_SOURCE 存储所有数据库对象的源代码。 ALL_SOURCE 存储所有可以访问的数据库对象的源代码。 USER_SOURCE 存储所有当前用户拥有的数据库对象的源代码。 因此,取得存储过程源代码的方法: SELECT TEXT FROM SYS.ALL_SOURCE WHERE NAME = ‘XXX’ AND TYPE = ‘PROCEDURE’; 取得函数的方法 同上,取得函数可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'FUNCTION'; 取得隶属于某个用户的函数可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'FUNCTION' AND OWNER = 'DBAUDIT'; 取得函数内容可以用: SELECT TEXT FROM SYS.ALL_SOURCE WHERE NAME = 'XXX' AND TYPE = 'FUNCTION'; 取得触发器的方法 存储数据库触发器的系统表/视图主要有: DBA_TRIGGERS 描述数据库中所有的触发器的属性。 ALL_ TRIGGERS 描述数据库中所有的用户可以访问的触发器的属性。 USER_ TRIGGERS 描述数据库中所有的当前用户拥有触发器的属性。 因此,可以从ALL_TRIGGERS 中取得隶属于指定用户的触发器: SELECT TRIGGER_NAME FROM SYS.ALL_TRIGGERS WHERE OWNER = 'DBAUDIT'; 取得触发器内容的方法: SELECT TRIGGER_BODY FROM SYS.ALL_TRIGGERS WHERE TRIGGER_NAME = 'XXX'; 取得索引的方法 存储数据库索引的系统表/视图主要有: DBA_INDEXES 描述数据库中所有的索引的属性。 ALL_INDEXES 描述数据库中所有的用户可以访问的索引的属性。 USER_INDEXES 描述数据库中所有的当前用户拥有索引的属性。 因此,可以从ALL_ INDEXES 中取得隶属于指定用户的索引: SELECT INDEX_NAME,TABLE_NAME FROM SYS.ALL_INDEXES WHERE OWNER = 'DBAUDIT'; 取得索引相关的列的方法: SELECT COLUMN_NAME FROM SYS.ALL_IND_COLUMNS WHERE INDEX_NAME = 'XXX' AND TABLE_OWNER = 'DBAUDIT'; 用户 存储数据库用户的系统表/视图主要有: DBA_USERS 描述数据库中所有的用户的属性。 ALL_USERS 描述数据库中所有的用户的属性。 USER_USERS 描述数据库中当前用户的属性。 因此,可以从ALL_USERS 中取得用户: SELECT USER_ID, USERNAME FROM SYS.ALL_USERS; 角色 存储角色的表/视图有: DBA_ROLES 描述数据库中所有角色。 取得角色方法: SELECT ROLE FROM SYS.DBA_ROLES; 表空间 SELECT TABLESPACE_NAME FROM SYS.DBA_TABLESPACES; 数据文件 SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME FROM SYS.DBA_DATA_FILES; 数据库连接 存储数据库连接的系统表/视图主要有: DBA_LINKS 描述数据库中所有的连接的属性。 ALL_LINKS 描述数据库中所有的用户可访问的连接的属性。 USER_LINKS 描述数据库中当前用户的连接属性。 因此,可以从DBA_DB_LINKS 中取得连接: SELECT * FROM SYS.DBA_DB_LINKS; 同义词 SELECT * FROM SYS.ALL_SYNONYMS WHERE TABLE_OWNER = 'DBAUDIT'; 程序包 取得程序包可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE'; 取得隶属于某个用户的程序包可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE' AND OWNER = 'DBAUDIT'; 取得程序包内容可以用: SELECT TEXT FROM SYS.ALL_SOURCE WHERE NAME = 'XXX' AND TYPE = 'PACKAGE'; 程序包体 取得程序包体可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE BODY'; 取得隶属于某个用户的程序包可以用: SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE BODY ' AND OWNER = 'DBAUDIT'; 取得程序包内容可以用: SELECT TEXT FROM SYS.ALL_SOURCE WHERE NAME = 'XXX' AND TYPE = 'PACKAGE BODY '; 第三部分: 简单点的还有。 返回所有列名 select name from syscolumns where id=object_id('表名') 查所有表名 select * from INFORMATION_SCHEMA.TABLES =================================== sp_tableoption N'MyTable', 'text in row', 'OFF' Sybase 取得数据库名的方法 系统存储过程sp_helpdb 或者 USE master SELECT d.name dbname, u.name owner FROM sysdatabases d, sysusers u WHERE d.suid = u.suid 取得表的方法 系统存储过程 USE xxx EXEC sp_help 或者 获取指定数据库的用户表: USE DBAudit SELECT sysobjects.name AS tname, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND type = 'U' 获取指定数据库的系统表: USE DBAudit SELECT sysobjects.name AS tname, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND type = 'S' 或者统一使用: USE DBAudit SELECT sysobjects.name AS tname, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND (type = 'U' OR type = 'S') 注: sysobjects 中type 字段类型解释: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 UQ = UNIQUE 约束(类型是 K) V = 视图 X = 扩展存储过程 取得列的方法 系统存储过程 USE xxxDatabase EXEC sp_help xxxTable 取得视图的方法 系统存储过程 USE xxx EXEC sp_help 或者 获取指定数据库的视图: USE xxx SELECT sysobjects.name AS name, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND type = 'V' 获取指定数据库的视图的内容: EXEC sp_helptext xxxObject 取得存储过程的方法 系统存储过程 USE xxx EXEC sp_help 或者 获取指定数据库的存储过程或者扩展存储过程: USE xxx SELECT sysobjects.name name, sysusers.name owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND (type = 'P' OR type = 'X') 获取指定数据库的存储过程或者扩展存储过程的内容: EXEC sp_helptext xxxObject 无法获取加密的存储过程。扩展存储过程只能得到dll 程序名。 取得函数的方法 Sybase 不支持用户定义函数。
4. 如何用手机存储卡获取证据
手机存储卡可分为内置存储卡和外置存储卡两种。对于外置存储卡 (如闪存卡) 可使用诸如Encase的取证软件工具来获取存储卡上的数据镜像。相比之下, 从手机内置存储卡 (如内存) 中提取数据就要显得复杂一些。目前有两种通过物理途径获取其中数据的方法, 其中一个是通过拆解手机以得到其内存芯片, 接着使用专门的芯片读取设备来获得其数据镜像。另一种是使用特定的数据缆线与手机主板连接, 然后从中读取内存芯片的数据信息。这些方法虽可减少在取证过程中外界因素对取证数据的干扰, 但对取证人员的手机硬件知识的要求很高。因此在手机存储卡的证据获取中还是较多地采用指令集和软件的方式。
5. 数据存储和读取该怎么实现
Android应用开发中,给我们提供了5种数据的存储方式
1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据
不同的业务逻辑,或者需求,用不同的实现方式,以下是这几中数据存储方式的说明用及法:
第一种: 使用SharedPreferences存储数据
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
以下为示例代码:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取SharedPreferences对象
Context ctx = MainActivity.this;
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
//存入数据
Editor editor = sp.edit();
editor.putString("STRING_KEY", "string");
editor.putInt("INT_KEY", 0);
editor.putBoolean("BOOLEAN_KEY", true);
editor.commit();
//返回STRING_KEY的值
Log.d("SP", sp.getString("STRING_KEY", "none"));
//如果NOT_EXIST不存在,则返回值为"none"
Log.d("SP", sp.getString("NOT_EXIST", "none"));
}
}
第二种: 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
文件可用来存放大量数据,如文本、图片、音频等。
默认位置:/data/data/ >/files/***.***。
代码示例:
public void save(){
try {
FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE);
outStream.write(text.getText().toString().getBytes());
outStream.close();
Toast.makeText(MyActivity.this,"Saved",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
return;
}
catch (IOException e){
return ;
}
}
第三种: SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite。
SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。
SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
读取文件示例:
public void load(){
try {
FileInputStream inStream=this.openFileInput("a.txt");
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int length=-1;
while((length=inStream.read(buffer))!=-1) {
stream.write(buffer,0,length);
}
stream.close();
inStream.close();
text.setText(stream.toString());
Toast.makeText(MyActivity.this,"Loaded",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
return ;
}
}
第四种 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍
第五种 网络存储数据 也就是说将数据保存在服务器,android上只需要通过httpclient发起一个请求,向服务器获取数据即可
火台,驿马,电报机,电话等。人类储存信息的工具有:牛骨﹑竹
6. 51单片机如何存储和提取信息
STC51单片机自带flash数据存储,芯片文档有很详细的使用说明。
7. 光盘使用激光技术存储和读取数据。
光盘 存储原理
有一类非磁性记录介质,经激光照射后可形成小凹坑,每一凹坑为一位信息。这种介质的吸光能力强、熔点较低,在激光束的照射下,其照射区域由于温度升高而被熔化,在介质膜张力的作用下熔化部分被拉成一个凹坑,此凹坑可用来表示一位信息。因此,可根据凹坑和未烧蚀区对光反射能力的差异,利用激光读出信息。
工作时,将主机送来的数据经编码后送入光调制器,调制激光源输出光束的强弱,用以表示数据1和0;再将调制后的激光束通过光路写入系统到物镜聚焦,使光束成为1大小的光点射到记录介质上,用凹坑代表1,无坑代表0。读取信息时,激光束的功率为写入时功率的1/10即可。读光束为未调制的连续波,经光路系统后,也在记录介质上聚焦成小光点。无凹处,入射光大部分返回;在凹处,由于坑深使得反射光与入射光抵消而不返回。这样,根据光束反射能力的差异将记录在介质上的“1”和“0”信息读出
8. 硬盘如何实现信息的存储
一块小小的硬盘,储存的信息几乎可以相当于全世界图书馆的总和,是怎么做到的?
虽然硬盘在我们生活中已经随处可见,但他的储存方法和原理,却不是每人都了解的。
想象一架飞机以离地面1毫米的高度飞行,每25秒绕地球一圈,还能覆盖每一寸表面。
再将其缩小成手掌大小,你就会得到和现代硬盘差不多的东西,它所包含的信息比你们当地图书馆还要多。
那么它是如何在这么小的空间 储存这么多的信息呢?
多亏了一代又一代工程师,材料科学家,还有量子物理学家们的共同努力,这个拥有不可思议的能量, 无比精确的小工具才能在你手掌中旋转。
欢迎关注微信公众号infoVision,更多精彩科普动画等着你!
9. 计算机中图片,文字,音频数据是如何采集存储的
计算机中图片,文字,音频数据都是以字节码形式采集存储的。例如图片由多个像素组成,每个像素可以用一个字节来错,其他内容也是同理,有定好数据的格式,就知道怎么解析每个字节了。
字节码是一种包含执行程序、由一序列op代码/数据对组成的二进制文件。字节码是一种中间码,它比机器码更抽象。它经常被看作是包含一个执行程序的二进制文件,更像一个对象模型。字节码被这样叫是因为通常每个opcode是一字节长,但是指令码的长度是变化的。
相关信息
在计算机中,数据只用0和1两种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个位为一个字节,用来表示常用的256个字母、符号、控制标记,其中用一个位来进行数据校验,其他七个位用来记录数据。
按计算机中的规定,一个英文的字符占用一个字节,而一个汉字以及汉字的标点符号、字符都占用两个字节,他们是没有办法比较的,只能将一个字符占用一个字节,N个字符占用N个字节。Java中,字节码是CPU构架(JVM)的具有可移植性的机器语言。
10. 在正常运行期间cpu会从哪种类型的数据存储中加载信息进
现在的CPU都有若干级高速缓存(cpu catch),所以,cpu运行过程中,计算所需数据首先都是从这些内部的缓存中获取。
若是缓存中没有所需数据,再去内存查找和获取。cpu 获取运行数据的次序是:寄存器、(多级)高速缓存、内存、硬盘。
程序是由指令构成的序列,执行程序就是按指令序列逐条执行指令。一旦把程序装入主存储器中 (简称主存) ,就可以由CPU自动地完成从主存取指令和执行指令的任务。
折叠顺序控制:其主要功能控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机工作的正确性。
(10)存储数据获取信息扩展阅读;
存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。
主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。存储单元的地址与存储在其中的信息是一一对应的,单元地址只有一个,固定不变,而存储在其中的信息是可以更换的.