文档章节

计算机存储单位以及内存原理

Oscarfff
 Oscarfff
发布于 2015/06/14 19:28
字数 1410
阅读 33
收藏 0
点赞 0
评论 0

计算机的存储单位:
计算机系统数据只用0和1这种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个位为一个字节。

电脑的各种存储器的最小的存储单位是比特,也就是位(bit,简称b),它表示一个二进制位。比位大的单位是字节(byte,简称B),它等于8个二进制位。

因为在存储器中含有大量的存储单元,每个存储单元可以存放8个二进制位,所以存储器的容量是以字节为基本单位的。

每个英文字母要占一个字节,一个汉字要占两个字节。

其它常用的单位还有千字节(Kilobyte,简称K或者KB,1KB等于1024B)、兆字节(Megabyte,简称M或者MB,1MB等于1024KB)和吉字节(Gigabyte,简称G或者GB,1GB等于1024MB)。

说道字节肯定要提到字符,那么这两者之间又是怎么回事呢?

字符: 
人们使用的记号,抽象意义上的一个符号。如 '1', '中', 'a', '$', '¥', ……

字节:
计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间。如 0x01, 0x45, 0xFA, ……

区别:通过编码,具体把某一个字符编码成了哪几个字节,我们只需要知道“编码”的概念就是把“字符”转化成“字节”。也就是说,字符是通过字节来实现的。

 

内存:
程序和数据平常存储在硬盘等存储器上,不管你开机或关机了,它们都是存在的,不会丢失。硬盘可以存储的东西很多,但其传输数据的速度较慢。所以需要运行程序或打开数据时,这些数据必须从硬盘等存储器上先传到另一种容量小但速度快得多的存储器,之后才送入CPU进行执行处理。这中间的存储器就是内存。

无论何种存储器,软盘、硬盘、光盘或者内存,都有地址。因为它们要存储数据,所以就必须按一定的单位的数据分配一个地址。有了地址,程序才能找到这些数据。这很好理解,想想你们家为什么要有门牌号即可。

学习编程,必须对内存的地址有一个透彻的理解。我们编程中的每一行代码,代码中用到的每个数据,都需要在内存上有其映射地址。当然,我们并不需要掌握内存是如何进行编址,那是计算机系中的另外一门课:操作系统的事了。

 

 

内存地址:
计算机把所有的信息都给数字化了,所以它知道自已把一个数据,一条命令记到了内存中的哪个(些)位置。
看下面的例子:
如果让计算机在内存里记住“丁小明”这个名字,可以示意为:



 

在第一行中,每一格表示一段内存,而格子里的内容是这段内容记下的数据;第二行中每一格内数字就是对应的内存的地址。
可能有人会啄磨:为什么一个“丁”字(“小”“明”两字也一样)占用两个内存地址呢?这是因为汉字在一个地址(位置)里呆不下,必须放在连续的两个地址空间内。那么,什么东西可以放在单独的一个内存地址里呢?像英文的里字母,比如’A’, 像阿拉伯数字:比如’1’,可以,而且就是放在一个内存地址里。假设有一字符串“ABC”,被记在内存里,可示意为(这次我们假设从内存地址2000H处记起):


 

现在我们提几个问题:

计算机记住”丁”字的内存地址是多少? 答案是:1000H。请见上图

 

我们一直在说,在计算机中,所有信息都被数字化为2进制的0、1,所以,“丁小明”这个名字被也应该是一串:0001 0010 0111 0101……,可是在中图所画出的,计算机内存里记的,仍是“丁小明”三个字啊。

下面是解释,我们只举一个字”丁”讲解。我们假设在那一串里的 0001 0010 0111 0101 对应的是 “丁” 字,那么有:



 
让我们把字母’A’对应的图也画出来:



 
 在上面的两个图中:

第一行分别是“丁”和“A”,它是给人看的。

第二行则是一串的的0和1,这才是计算机内存中实际存储的数据。

第三行是内存的地址。并不是每个0和1所占的位置都被编上地址。而是每8个才拥有一个地址。

关于第三行,你可以这样理解,门牌号是一个家庭分配一个,每家每户内还有客厅卧室,这些就没有地址了。

 

可见:

‘丁’的确是由一串0、1组成的。更确切地,从图上可以看出‘丁’是由16位0和1组成。这16数都存放在2个内存地址里。

‘A’也一样,它是由8位0、1组成的。占1个内存地址。

 

总结:内存地址是内存当中存储数据的一个标识,并不是数据本身,通过内存地址可以找到内存当中存储的数据。


本文转载自:http://wwty.iteye.com/blog/401713

共有 人打赏支持
Oscarfff
粉丝 71
博文 815
码字总数 96913
作品 0
崇明
后端工程师
2018-06-18_计算机基本概念

今天看了刘欣的CDSN:码农翻身 ,一个技术大牛写的博客文章; 大牛把计算机原理通过一个个小故事,让你明白工作的过程,个人感觉挺容易理解和接受的; 今天主要学到的几个点是:进程,线程,cpu,内存,...

洛根森
06/18
0
0
嵌入式之S5PV210地址映射详解与外部存储器的接口

一:地址映射详解 哈哈 注意不是内存映射 而是地址映射 大家都知道 S5PV210芯片是基于arm 的cortex-A8架构的 32位的cpu 拥有32位的地址总线和32位的数据总线 因为有32位的地址总线 那么表示的...

zw1996
03/16
0
0
Linux:内核、CPU和处理机

想要有顺序地学习Linux,入口在这里哦:Linux:目录索引 1.什么是内核? 内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内...

w_y_x_y
04/20
0
0
高性能磁盘 I/O 开发学习笔记 -- 硬件原理篇

曾经做嵌入式开发的我,现在做服务器开发,很多思路要转变。今天学习了服务器高性能IO设计,同时自己也还发散开去学习了其他的一些参考资料,顺便结合自己已有的一些知识,做为自己的学习笔记...

amc
2017/10/27
0
0
基础才是重中之重~stream和byte[]的概念与转化

多看几篇 之所以写这篇文章完全是因为最近在研究FastDFS这个分布式的文件存储系统,当然这不是我第一次研究它了,就像我们去看一本书,我们不会只看一篇,而是一次次,一篇篇,每看一次会有新...

mcy247
2017/12/05
0
0
Linux 学习“计算机概论”

计算机的定义很广泛; CPU实际处理的数据完全来自于内存; ARM属于精简指令集(RISC)手机基本都是ARM; ps3使用PowerPC架构的Cell处理器为精简指令集(RISC); AMD、Intel、VIA使用x86架构...

luzhufu0815
05/29
0
0
笔记本电脑购买攻略

扯淡 电子产品,更新换代很快,由于摩尔定理的原因,你的电脑最多二年就被市场淘汰了,无论是性能还是价格。所以尽量买新产品,买最近的产品,比如今年手机是全面屏时代,type c接口了,电脑...

东风冷雪
01/08
0
0
操作系统之操作系统概述(汤子瀛版)

1.1 操作系统的目标和作用 操作系统是一组控制和管理计算机软硬件资源,合理对各类作业进行调度,以及方便用户使用的程序的集合。 1. 操作系统的目标 有效性、方便性、可扩充性、开放性(前两...

吃一堑消化不良
2015/01/03
0
6
浅谈SQL Server 对于内存的管理

简介 理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理。 二级存储(secondary storage) 对于计算机来说,存储体系是分...

范大脚脚
2017/11/15
0
0
计算机基础知识

一、计算机系统 1.1 计算机系统由硬件系统(Hardware)和软件系统(Software)两大部分组成。 二、计算机硬件 2.1 计算机概念 计算机俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序...

浮冰者
2017/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知识点总结

jq如何拿到data-info的自定义属性 1.1 原生可以获取到所有属性el.attrbutes 1.2 jq的$(el).attr('属性名称') 继承的几种方式,原型链 2.1 扩展原型对象实现继承 2.2 替换原型对象实现继承 2....

litCabbage
3分钟前
0
0
python语言规范

http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/...

ghou-靠墙哭
7分钟前
0
0
istio 监控,遥测 (理论)

Istio提供了一种灵活的模型来强制执行授权策略并收集网格中服务的遥测。 基础架构后端旨在提供用于构建服务的支持功能。它们包括诸如访问控制系统,遥测捕获系统,配额执行系统,计费系统等之...

xiaomin0322
9分钟前
0
0
阿里资深专家面试问题收集

corejava hashcode相等的两个对象一定相等吗?equals呢?反过来相等吗? 介绍一下集合框架? hashtable,hashmap底层实现是什么?hashtable和concurrenthashmap底层实现的区别? hashmap和treemap的...

undefine
10分钟前
4
0
alpine安装软件指定安装源

linux-alpine安装软件指定安装源 一、永久修改apk下载源地址 vi etc/apk/repositories 替换成阿里源 http://mirrors.aliyun.com/alpine/v3.8/main/http://mirrors.aliyun.com/alpine/v3...

我心中有猛狗
11分钟前
0
0
Centos7通过yum安装nginx

添加源地址(直接install可能不是最新版本的) sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 安装 sudo yum install -y ng......

iplusx
13分钟前
0
0
ef .core Dapper Helper

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Threading.Tasks; using Dapper; using Dap......

Lytf
14分钟前
0
0
iOS 小笔记

1.以下代码打印什么     __block int val = 10;    void (^blk)(void) = ^{        printf("val=%d\n",val);        };       val = 2;    blk(); /...

风了个1
16分钟前
0
0
【Spring Boot 系列 Spring Boot示例程序】

入门程序步骤,创建一个Maven项目。继承Spring Boot官方提供的父工程。再引入一个Web的应用启动器。 1、选择一个合适的IDEA工具 创建一个Maven工程,并添加如下配置 <parent> <...

HansonReal
18分钟前
0
0
217. Contains Duplicate - LeetCode

Question 217. Contains Duplicate Solution 题目大意:判断数组中是否有重复元素 思路:构造一个set,不重复就加进去,重复返回true,如果数据量大的话,可以用布隆过滤器 Java实现: publ...

yysue
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部