1.计算机底层存储实现概述
计算机的工作是基于二进制原理进行的,计算机内部所存储的信息都是用二进制来记录和表示的。
实现原理:
计算机的存储器使用半导体集成电路构成的,它包括几亿个小的脉冲单元(二极管元件)。
每个二极管元件如同一个开关,有两种稳定的工作状态:“ 导通 ”和“ 截止 ”,即电脉冲的“ 有 ”和“ 无 ”状态。用“ 1 ”和“ 0 ”表示。♥
示例:
如果相邻的8个二极管中第1、3、5、8个元件处于“导通”状态,则第2、4、6、8个原件处于“截止”状态。 即“1010101010”。
进一步示例:
用户向计算机输入十进制整数数据 5 ,计算机先把数据转换成二进制数据“ 101 ”,使相应的电子元件设置为“导通”和“截止”状态。 (至于如何实现,学者无须考虑。)
补充: 进制转换(十进制转二进制) 【同理推理】
十进制整数数据10用二进制表示为1010,其含义是:123+022+121+020
2.位 、字节 、 地址
① 位 (bit) : 每一个二极管元件称为一个“二进制位”,是存储信息的最小单位。它的值固定是:“0”和“1”。
② 字节 (byte) :(生活中最常用的存储单元)
一个存储器包含许多个“二进制位”,如果直接用“二进制位”来表示和管理很不方便。
一般将8个“二进制位”组织成一组,称为字节。
♥示例:
⑴我们平常所说的占内存 “ 125K ” 指的就是 125K字节,即约12.5万字节! (Kilo千)
⑵内存为 “ 256M ”,就是 “256兆字节”,一兆是106,即100万字节。
⑶硬盘容量为 “40G” 就是 “40G字节”, 一个G是109字节,即1亿字节。
③ 地址
计算机的存储器包含许多的存储单元,操作系统把所有的存储单元以2字节为单位编号。可以通过这些编号找到这些存储单元。
实际上在计算机中一般不是一个字节存放一个整数,而是用2或者4个字节存放一个整数。这是因为一个字节只有八个“二进制位”,能存放的数据范围比较小。为了扩大存储数据的范围,需要用几个字节存放一个数据。
3.不同数据类型的存储方式
⑴整数的存储方式
一个十进制数先转化为二进制形式,左边第一位用来表示符号,当最高位为0时表示的为正数。 如果用一个字节来存储,存储单元中的情况如下:
显而易见,此种方式能存储的最大数值是011111111,即27-1.十进制位逇127.
数值并不往往是正数值,还有负数。负数用“补码”表示的。实际上无论正数负数,在计算机的存储器中,整数搜使以“补码”形式存放的。
一个正数的补码和该数的原码(该正数的二进制形式)相同,如正整数10的原码和补码都是00001010。 对于负数先求出他的“补码”再存放到存储单元中。
⑵实数的存储方式
示例实数:如123.456。
对于实数一律采用指数方式存储0.123456 X 102。它包括前后两个部分,前面是数值部分,后面是指数部分。
一个实数可以有多种指数表示形式,但只有一种标准化指数形式:(其数值部分是一个小数,小数点前的数字是0,小数点后的第一个数字不是0。)
在计算机中一般以4个字节存储一个实数:
⑶字符的存储方式
字符包括字母(Aa、Bb、Cc…),也包括专用字符如:$、@、%、#等。计算机并不是将该字符本身存放到存储单元中(存储单元只能存放二进制信息)。而是将字符的 代码 存储到相应的存储单元中。 一般采用国际通用的 ASCII 代码。
如大写字母A对应的ASCII代码是65(十进制数)。而65对应的二进制形式是:1000001,所以在存储单元中的信息是: