请问浮点型数据在计算机是怎么存储的 计算机是如何存储浮点数的(工作原理,实现方式)

\u6d6e\u70b9\u6570\u5728\u8ba1\u7b97\u673a\u91cc\u9762\u7684\u5b58\u50a8

\u8fd9\u4e2a\u95ee\u9898\u6bd4\u8f83\u96be..\u5176\u5b9e\u5728\u5b9e\u9645\u8fd0\u7b97\u8fc7\u7a0b\u4e2d\u6216\u5199\u7a0b\u5e8f\u4e2d\u6211\u4eec\u8981\u6c42\u7684\u6d6e\u70b9\u6570\u90fd\u6709\u4e00\u5b9a\u7684\u7cbe\u5ea6,\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u5b58\u6210\u6587\u4ef6\u7b49\u5f62\u5f0f\u6211\u4eec\u4e00\u822c\u4f1a\u8ba9\u4ed6*10^n\u6b21\u65b9\u6765\u5b58\u50a8\u53bb\u6389\u5c0f\u6570\u4f4d.\u4e0b\u9762\u8bf4\u6b63\u9898.

\u4f55\u6570\u636e\u5728\u5185\u5b58\u4e2d\u90fd\u662f\u4ee5\u4e8c\u8fdb\u5236\uff080\u62161\uff09\u987a\u5e8f\u5b58\u50a8\u7684\uff0c\u6bcf\u4e00\u4e2a1\u62160\u88ab\u79f0\u4e3a1\u4f4d\uff0c\u800c\u5728x86CPU\u4e0a\u4e00\u4e2a\u5b57\u8282\u662f8\u4f4d\u3002\u6bd4\u5982\u4e00\u4e2a16\u4f4d\uff082 \u5b57\u8282\uff09\u7684short int\u578b\u53d8\u91cf\u7684\u503c\u662f1000\uff0c\u90a3\u4e48\u5b83\u7684\u4e8c\u8fdb\u5236\u8868\u8fbe\u5c31\u662f\uff1a00000011 11101000\u3002\u7531\u4e8eIntel CPU\u7684\u67b6\u6784\u539f\u56e0\uff0c\u5b83\u662f\u6309\u5b57\u8282\u5012\u5e8f\u5b58\u50a8\u7684\uff0c\u90a3\u4e48\u5c31\u56e0\u8be5\u662f\u8fd9\u6837\uff1a11101000 00000011\uff0c\u8fd9\u5c31\u662f\u5b9a\u70b9\u65701000\u5728\u5185\u5b58\u4e2d\u7684\u7ed3\u6784\u3002
\u76ee\u524dC/C++\u7f16\u8bd1\u5668\u6807\u51c6\u90fd\u9075\u7167IEEE\u5236\u5b9a\u7684\u6d6e\u70b9\u6570\u8868\u793a\u6cd5\u6765\u8fdb\u884cfloat,double\u8fd0\u7b97\u3002\u8fd9\u79cd\u7ed3\u6784\u662f\u4e00\u79cd\u79d1\u5b66\u8ba1\u6570\u6cd5\uff0c\u7528\u7b26\u53f7\u3001\u6307\u6570\u548c\u5c3e\u6570\u6765\u8868\u793a\uff0c\u5e95\u6570\u5b9a\u4e3a2\u2014\u2014\u5373\u628a\u4e00\u4e2a\u6d6e\u70b9\u6570\u8868\u793a\u4e3a\u5c3e\u6570\u4e58\u4ee52\u7684\u6307\u6570\u6b21\u65b9\u518d\u6dfb\u4e0a\u7b26\u53f7\u3002\u4e0b\u9762\u662f\u5177\u4f53\u7684\u89c4\u683c\uff1a
````````\u7b26\u53f7\u4f4d \u9636\u7801 \u5c3e\u6570 \u957f\u5ea6
float 1 8 23 32
double 1 11 52 64
\u4e34\u65f6\u6570 1 15 64 80

\u7531\u4e8e\u901a\u5e38C\u7f16\u8bd1\u5668\u9ed8\u8ba4\u6d6e\u70b9\u6570\u662fdouble\u578b\u7684\uff0c\u4e0b\u9762\u4ee5double\u4e3a\u4f8b\uff1a
\u5171\u8ba164\u4f4d\uff0c\u6298\u54088\u5b57\u8282\u3002\u7531\u6700\u9ad8\u5230\u6700\u4f4e\u4f4d\u5206\u522b\u662f\u7b2c63\u300162\u300161\u3001\u2026\u2026\u30010\u4f4d\uff1a
\u6700\u9ad8\u4f4d63\u4f4d\u662f\u7b26\u53f7\u4f4d\uff0c1\u8868\u793a\u8be5\u6570\u4e3a\u8d1f\uff0c0\u6b63\uff1b
62-52\u4f4d\uff0c\u4e00\u517111\u4f4d\u662f\u6307\u6570\u4f4d\uff1b
51-0\u4f4d\uff0c\u4e00\u517152\u4f4d\u662f\u5c3e\u6570\u4f4d\u3002
\u6309\u7167IEEE\u6d6e\u70b9\u6570\u8868\u793a\u6cd5\uff0c\u4e0b\u9762\u5c06\u628adouble\u578b\u6d6e\u70b9\u657038414.4\u8f6c\u6362\u4e3a\u5341\u516d\u8fdb\u5236\u4ee3\u7801\u3002
\u628a\u6574\u6570\u90e8\u548c\u5c0f\u6570\u90e8\u5206\u5f00\u5904\u7406:\u6574\u6570\u90e8\u76f4\u63a5\u5316\u5341\u516d\u8fdb\u5236\uff1a960E\u3002\u5c0f\u6570\u7684\u5904\u7406:
0.4=0.5*0+0.25*1+0.125*1+0.0625*0+\u2026\u2026
\u5b9e\u9645\u4e0a\u8fd9\u6c38\u8fdc\u7b97\u4e0d\u5b8c\uff01\u8fd9\u5c31\u662f\u8457\u540d\u7684\u6d6e\u70b9\u6570\u7cbe\u5ea6\u95ee\u9898\u3002\u6240\u4ee5\u76f4\u5230\u52a0\u4e0a\u524d\u9762\u7684\u6574\u6570\u90e8\u5206\u7b97\u591f53\u4f4d\u5c31\u884c\u4e86\uff08\u9690\u85cf\u4f4d\u6280\u672f\uff1a\u6700\u9ad8\u4f4d\u76841 \u4e0d\u5199\u5165\u5185\u5b58\uff09\u3002
\u5982\u679c\u4f60\u591f\u8010\u5fc3\uff0c\u624b\u5de5\u7b97\u523053\u4f4d\u90a3\u4e48\u56e0\u8be5\u662f\uff1a38414.4(10)=1001011000001110.0110101010101010101010101010101010101(2)
\u79d1\u5b66\u8bb0\u6570\u6cd5\u4e3a\uff1a1.001\u2026\u2026\u4e58\u4ee52\u768415\u6b21\u65b9\u3002\u6307\u6570\u4e3a15\uff01
\u4e8e\u662f\u6765\u770b\u9636\u7801\uff0c\u4e00\u517111\u4f4d\uff0c\u53ef\u4ee5\u8868\u793a\u8303\u56f4\u662f-1024 ~ 1023\u3002\u56e0\u4e3a\u6307\u6570\u53ef\u4ee5\u4e3a\u8d1f\uff0c\u4e3a\u4e86\u4fbf\u4e8e\u8ba1\u7b97\uff0c\u89c4\u5b9a\u90fd\u5148\u52a0\u4e0a1023\uff0c\u5728\u8fd9\u91cc\uff0c 15+1023=1038\u3002\u4e8c\u8fdb\u5236\u8868\u793a\u4e3a\uff1a100 00001110
\u7b26\u53f7\u4f4d\uff1a\u6b63\u2014\u2014 0 \uff01 \u5408\u5728\u4e00\u8d77\uff08\u5c3e\u6570\u4e8c\u8fdb\u5236\u6700\u9ad8\u4f4d\u76841\u4e0d\u8981\uff09\uff1a
01000000 11100010 11000001 11001101 01010101 01010101 01010101 01010101
\u6309\u5b57\u8282\u5012\u5e8f\u5b58\u50a8\u7684\u5341\u516d\u8fdb\u5236\u6570\u5c31\u662f\uff1a
55 55 55 55 CD C1 E2 40

\u8ba1\u7b97\u673a\u7528\u4e8c\u8fdb\u5236\u6765\u8868\u793a\u6570\u5b57\uff0c\u6d6e\u70b9\u6570\u4e5f\u662f\u5982\u6b64\uff1a
\u9996\u5148\u4e86\u89e3\u5982\u4f55\u7528\u4e8c\u8fdb\u5236\u8868\u793a\u5c0f\u6570\uff08\u4e5f\u5c31\u662f\u5982\u4f55\u628a\u5341\u8fdb\u5236\u5c0f\u6570\u8f6c\u5316\u4e3a\u4e8c\u8fdb\u5236\u8868\u793a\uff09\uff1a
\u4e3e\u4e00\u4e2a\u7b80\u5355\u4f8b\u5b50\uff0c\u5341\u8fdb\u5236\u5c0f\u6570 10.625
1\uff09\u9996\u5148\u8f6c\u6362\u6574\u6570\u90e8\u5206\uff1a10 = 1010b
2\uff09\u5c0f\u6570\u90e8\u52060.625 = 0.101b
(\u7528\u201c\u4e582\u53d6\u6574\u6cd5\u201d\uff1a0.625*2=1.25,\u5f97\u7b2c\u4e00\u4f4d\u4e3a1\uff0c0.25*2=0.5\uff0c\u5f97\u7b2c\u4e8c\u4f4d\u4e3a0\uff0c0.5*2=1\uff0c \u5f97\u7b2c\u4e09\u4f4d\u4e3a1\uff0c\u4f59\u4e0b\u5c0f\u6570\u90e8\u5206\u4e3a\u96f6\uff0c\u5c31\u53ef\u4ee5\u7ed3\u675f\u4e86)
3\uff09\u4e8e\u662f\u5f97\u5230 10.625=1010.101b
\u6362\u4e2a\u8868\u793a\u65b9\u5f0f\u66f4\u52a0\u6df1\u5165\u7406\u89e3\uff1a
1*(10^1)+0*(10^0)+6*(10^-1)+2*(10^-2)+5*(10^-3) =
1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) + 1*(2^-1) + 0*(2^-2) + 1*(2^-3)
4) \u7c7b\u4f3c\u5341\u8fdb\u5236\u53ef\u4ee5\u7528\u6307\u6570\u5f62\u5f0f\u8868\u793a\uff1a
10.625=10625*\uff0810^-3\uff09
\u6240\u5f97\u7684\u4e8c\u8fdb\u5236\u5c0f\u6570\u4e5f\u53ef\u4ee5\u8fd9\u6837\u6307\u6570\u5f62\u5f0f\u8868\u8ff0\uff1a
1010.101b=1010101 * (2^-3)
\u4e5f\u5c31\u662f\u7528\u6709\u6548\u6570\u5b57a\u548c\u6307\u6570e\u6765\u8868\u8ff0\uff1a a * (2^e)
\u7528\u4e00\u4e2a32bit\u7684\u7a7a\u95f4\uff08bit0~bit31\uff09\u6765\u5b58\u50a8\u8fd9\u4e48\u4e00\u4e2a\u6d6e\u70b9\u6570\uff0c\u5982\u6b64\u5206\u914d\u5b58\u50a8\u7a7a\u95f4\uff1a
bit0 ~ bit22 \u517123bit\uff0c\u7528\u6765\u8868\u793a\u6709\u6548\u6570\u5b57\u90e8\u5206\uff0c\u4e5f\u5c31\u662fa\uff0c\u672c\u4f8b\u4e2da=1010101
bit23 - bit30 \u51718\u4e2abit\uff0c\u7528\u6765\u8868\u662f\u6307\u6570\uff0c\u4e5f\u5c31\u662fe\uff0c\u8303\u56f4\u4ece-128\u5230127\uff0c\u5b9e\u9645\u6570\u636e\u4e2d\u7684\u6307\u6570\u662f\u539f\u59cb\u6307\u6570\u52a0\u4e0a127\u5f97\u5230\u7684\uff0c\u5982\u679c\u8d85\u8fc7\u4e86127\uff0c\u5219\u4ece-128\u5f00\u59cb\u8ba1\uff0c\u6240\u4ee5\u8fd9\u91cce=-3\u8868\u793a\u4e3a124
bit31 \u4e3a\u7b26\u53f7\u4f4d\uff0c1\u8868\u793a\u8d1f\u6570\uff0c\u8fd9\u91cc\u5e94\u8be5\u4e3a0
\u628a\u4e0a\u8ff0\u7ed3\u679c\u586b\u516532bit\u7684\u5b58\u50a8\u5668\uff0c\u5c31\u662f\u8ba1\u7b97\u673a\u8868\u793a\u5c0f\u657010.625\u7684\u5f62\u5f0f\u3002

\u6ce8\u610f\u8fd9\u4e2a\u4f8b\u5b50\u7684\u7279\u6b8a\u6027\uff1a\u5b83\u7684\u5c0f\u6570\u90e8\u5206\u6b63\u597d\u53ef\u4ee5\u7528\u6709\u9650\u957f\u5ea6\u76842\u8fdb\u5236\u5c0f\u6570\u8868\u793a\uff0c\u56e0\u6b64\uff0c\u800c\u4e14\u6574\u4e2a\u6709\u6548\u6570\u5b57\u90e8\u5206a\u7684\u603b\u957f\u5ea6\u5c0f\u4e8e23\uff0c\u56e0\u6b64\u5b83\u7cbe\u786e\u7684\u8868\u793a\u4e8610.625\uff0c\u4f46\u662f\u6709\u7684\u60c5\u51b5\u4e0b\uff0c\u6709\u6548\u6570\u5b57\u90e8\u5206\u7684\u957f\u5ea6\u53ef\u80fd\u8d85\u8fc723\uff0c\u751a\u81f3\u662f\u65e0\u9650\u591a\u7684\uff0c\u90a3\u65f6\u5019\u5c31\u53ea\u597d\u628a\u540e\u9762\u7684\u4f4d\u6570\u622a\u6389\u4e86\uff0c\u90a3\u6837\u8868\u793a\u7684\u7ed3\u679c\u5c31\u53ea\u662f\u4e00\u4e2a\u8fd1\u4f3c\u503c\u800c\u975e\u7cbe\u786e\u503c\uff1b\u663e\u7136\uff0c\u5b58\u50a8\u957f\u5ea6\u8d8a\u957f\uff0c\u7cbe\u5ea6\u5c31\u8d8a\u9ad8\uff0c\u6bd4\u5982\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u6570\u957f\u5ea6\u4e3a64\u4f4d\uff0c1\u4f4d\u7b26\u53f7\u4f4d\uff0c11\u4f4d\u6307\u6570\u4f4d\uff0c52\u4f4d\u6709\u6548\u6570\u5b57\u3002

对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit。

无论是单精度还是双精度在存储中都分为三个部分:

1、符号位(Sign) : 0代表正,1代表为负。

2、指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储。

3、尾数部分(Mantissa):尾数部分。

扩展资料

实型变量分为两类:单精度型和双精度型,

其类型说明符为float 单精度说明符,double
双精度说明符。在Turbo
C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。

双精度型占8
个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

实型变量说明的格式和书写规则与整型相同。

例如: float x,y; (x,y为单精度实型量)

double a,b,c; (a,b,c为双精度实型量)

实型常数不分单、双精度,都按双精度double型处理。

参考资料来源:百度百科-浮点型数据



计算机的基本原理
计算机的基本原理是存贮程序和程序控制。预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中。每一条指令中明确规定了计算机从哪个地址取数,进行什么操作,然后送到什么地址去等步骤。
计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存贮器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去,直至遇到停止指令。
程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作原理。这一原理最初是由美籍匈牙利数学家冯.诺依曼于1945年提出来的,故称为冯.诺依曼原理。
**计算机的存储程序工作原理和硬件系统
冯·诺依曼结构
计算机系统由硬件系统和软件系统两大部分组成。美藉匈牙利科学家冯·诺依曼结构(John von Neumann)奠定了现代计算机的基本结构,其特点是:
1)使用单一的处理部件来完成计算、存储以及通信的工作。
2)存储单元是定长的线性组织。
3)存储空间的单元是直接寻址的。
4)使用低级机器语言,指令通过操作码来完成简单的操作。
5)对计算进行集中的顺序控制。
6)计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备五大部件组成并规定了它们的基本功能。
7)彩二进制形式表示数据和指令。
8)在执行程序和处理数据时必须将程序和数据道德从外存储器装入主存储器中,然后才能使计算机在工作时能够自动调整地从存储器中取出指令并加以执行。
这就是存储程序概念的基本原理。
计算机指令
计算机根据人们预定的安排,自动地进行数据的快速计算和加工处理。人们预定的安排是通过一连串指令(操作者的命令)来表达的,这个指令序列就称为程序。一个指令规定计算机执行一个基本操作。一个程序规定计算机完成一个完整的任务。一种计算机所能识别的一组不同指令的集合,管为该种计算机的指令集合或指令系统。在微机的指令系统中,主要使用了单地址和二地址指令。其中,第1个字节是操作码,规定计算机要执行的基本操作,第2个字节是操作数。计算机指令包括以下类型:数据处理指令(加、减、乘、除等)、数据传送指令、程序控制指令、状态管理指令。整个内存被分成若干个存储单元,每个存储单元一般可存放8位二进制数(字节编址)。每个在位单元可以存放数据或程序代码。为了能有效地存取该单元内存储的内容,每个单元都给出了一个唯一的编号来标识,即地址。
计算机的工作原理
按照冯·诺依曼存储程序的原理,计算机在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器的内容取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去直到程序结束指令时才停止执行。其工作过程就是不断地取指令和执行指令的过程,最后将计算的结果放入指令指定的存储器地址中。计算机工作过程中所要涉及的计算机硬件部件有内存储器、指令寄存器、指令译码器、计算器、控制器、运算器和输入/输出设备等,在以后的内容中将会着重介绍。
(一)计算机硬件系统
硬件通常是指构成计算机的设备实体。一台计算机的硬件系统应由五个基本部分组成:运算器、控制器、存储器、输入和输出设备。这五大部分通过系统总线完成指令所传达的操作,当计算机在接受指令后,由控制器指挥,将数据众输入设备传送到存储器存放,再由控制器将需要参加运算的数据传送到运算器,由运算器进行处理,处理后的结果由输出设备输出。
中央处理器
CPU(central processing unit)意为中央处理单元,又称中央处理器。CPU由控制器、运算器和寄存器组成,通常集中在一块芯片上,是计算机系统的核心设备。计算机以CPU为中心,输入和输出设备与存储器之间的数据传输和处理都通过CPU来控制执行。微型计算机的中央处理器又称为微处理器。
控制器
控制器是对输入的指令进行分析,并统一控制计算机的各个部件完成一定任务的部件。它一般由指令寄存器、状态寄存器、指令译码器、时序电路和控制电路组成。计算机的工作方式是执行程序,程序就是为完成某一任务所编制的特定指令序列,各种指令操作按一定的时间关系有序安排,控制器产生各种最基本的不可再分的微操作的命令信号,即微命令,以指挥整个计算机有条不紊地工作。当计算机执行程序时,控制器首先从指令指针寄存器中取得指令的地址,并将下一条指令的地址存入指令寄存器中,然后从存储器中取出指令,由指令译码器对指令进行译码后产生控制信号,用以驱动相应的硬件完成指纹操作。简言之,控制器就是协调指挥计算机各部件工作的元件,它的基本任务就是根据种类指纹的需要综合有关的逻辑条件与时间条件产生相应的微命令。
运算器
运算器又称积极态度逻辑单元ALU(Arithmetic Logic Unit)。运算器的主要任务是执行各种算术运算和逻辑运算。算术运算是指各种数值运算,比如:加、减、乘、除等。逻辑运算是进行逻辑判断的非数值运算,比如:与、或、非、比较、移位等。计算机所完成的全部运算都是在运算器中进行的,根据指令规定的寻址方式,运算器从存储或寄存器中取得操作数,进行计算后,送回到指令所指定的寄存器中。运算器的核心部件是加法器和若干个寄存器,加法器用于运算,寄存器用于存储参加运算的各种数据以及运算后的结果。
(二)存储器
存储器分为内存储器(简称内存或主存)、外存储器(简称外存或辅存)。外存储器一般也可作为输入/输出设备。计算机把要执行的程序和数据存入内存中,内存一般由半导体器构成。半导体存储器可分为三大类:随机存储器、只读存储器、特殊存储器。
RAM
RAM是随机存取存储器(Random Access Memory),其特点是可以读写,存取任一单元所需的时间相同,通电是存储器内的内容可以保持,断电后,存储的内容立即消失。RAM可分为动态(Dynamic RAM)和静态(Static RAM)两大类。所谓动态随机存储器DRAM是用MOS电路和电容来作存储元件的。由于电容会放电,所以需要定时充电以维持存储内容的正确,例如互隔2ms刷新一次,因此称这为动态存储器。所谓静态随机存储器SRAM是用双极型电路或MOS电路的触发器来作存储元件的,它没有电容放电造成的刷新问题。只要有电源正常供电,触发器就能稳定地存储数据。DRAM的特点是集成密度高,主要用于大容量存储器。SRAM的特点是存取速度快,主要用于调整缓冲存储器。
ROM
ROM是只读存储器(Read Only Memory),它只能读出原有的内容,不能由用户再写入新内容。原来存储的内容是由厂家一次性写放的,并永久保存下来。ROM可分为可编程(Programmable)ROM、可擦除可编程(Erasable Programmable)ROM、电擦除可编程(Electrically Erasable Programmable)ROM。如,EPROM存储的内容可以通过紫外光照射来擦除,这使它的内可以反复更改。
特殊固态存储器
包括电荷耦合存储器、磁泡存储器、电子束存储器等,它们多用于特殊领域内的信息存储。
此外,描述内、外存储容量的常用单位有:
①位/比特(bit):这是内存中最小的单位,二进制数序列中的一个0或一个1就是一比比特,在电脑中,一个比特对应着一个晶体管。
②字节(B、Byte):是计算机中最常用、最基本的存在单位。一个字节等于8个比特,即1 Byte=8bit。
③千字节(KB、Kilo Byte):电脑的内存容量都很大,一般都是以千字节作单位来表示。1KB=1024Byte。
④兆字节(MB Mega Byte):90年代流行微机的硬盘和内存等一般都是以兆字节(MB)为单位。1 MB=1024KB。
⑤吉字节(GB、Giga Byte):目前市场流行的微机的硬盘已经达到4.3GB、6.4GB、8.1GB、12G、13GB等规格。1GB=1024MB。
⑥太字节(TB、Tera byte):1TB=1024GB。
(三)输入/输出设备
输入设备是用来接受用户输入的原始数据和程序,并将它们变为计算机能识别的二进制存入到内存中。常用的输入设备有键盘、鼠标、扫描仪、光笔等。
输出设备用于将存入在内存中的由计算机处理的结果转变为人们能接受的形式输出。常用的输出设备有显示器、打印机、绘图仪等。
(四)总线
总线是一组为系统部件之间数据传送的公用信号线。具有汇集与分配数据信号、选择发送信号的部件与接收信号的部件、总线控制权的建立与转移等功能。典型的微机计算机系统的结构如图2-3所示,通常多采用单总线结构,一般按信号类型将总线分为三组,其中AB(Address Bus)为地址总线;DB(Data Bus)为数据总线;CB(Control Bus)控制总线。
(五)微型计算机主要技术指标
①CPU类型:是指微机系统所采用的CPU芯片型号,它决定了微机系统的档次。
②字长:是指CPU一次最多可同时传送和处理的二进制位数,安长直接影响到计算机的功能、用途和应用范围。如Pentium是64位字长的微处理器,即数据位数是64位,而它的寻址位数是32位。
③时钟频率和机器周期:时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为兆(MHz),它反映了CPU的基本工作节拍。一个机器周期由若干个时钟周期组成,在机器语言中,使用执行一条指令所需要的机器周期数来说明指令执行的速度。一般使用CPU类型和时钟频率来说明计算机的档次。如Pentium III 500等。
④运算速度:是指计算机每秒能执行的指令数。单位有MIPS(每秒百万条指令)、MFLOPS(秒百万条浮点指令)
⑤存取速度:是指存储器完成一次读取或写存操作所需的时间,称为存储器的存取时间或访问时间。而边连续两次或写所需要的最短时间,称为存储周期。对于半导体存储器来说,存取周期大约为几十到几百毫秒之间。它的快慢会影响到计算机的速度。
⑥内、外存储器容量:是指内存存储容量,即内容储存器能够存储信息的字节数。外储器是可将程序和数据永久保存的存储介质,可以说其容量是无限的。如硬盘、软盘已是微机系统中不可缺少的外部设备。迄今为止,所有的计算机系统都是基于冯·诺依曼存储程序的原理。内、外存容量越大,所能运行的软件功能就越丰富。CPU的高速度和外存储器的低速度是微机系统工作过程中的主要瓶颈现象,不过由于硬盘的存取速度不断提高,目前这种现象已有所改善。
我们先从最早的计算机讲起,人们在最初设计计算机时采用这样一个模型:
人们通过输入设备把需要处理的信息输入计算机,计算机通过中央处理器把信息加工后,再通过输出设备把处理后的结果告诉人们。
其实这个模型很简单,举个简单的例子,你要处理的信息是1+1,你把这个信息输入到计算机中后,计算机的内部进行处理,再把处理后的结果告诉你。
早期计算机的输入设备十分落后,根本没有现在的键盘和鼠标,那时候计算机还是一个大家伙,最早的计算机有两层楼那么高。人们只能通过扳动计算机庞大的面板上无数的开头来向计算机输入信息,而计算机把这些信息处理之后,输出设备也相当简陋,就是计算机面板上无数的信号灯。所以那时的计算机根本无法处理像现在这样各种各样的信息,它实际上只能进行数字运算。
当时人们使用计算机也真是够累的。但在当时,就算是这种计算机也是极为先进的了,因为它把人们从繁重的手工计算中解脱出来,而且极大地提高了计算速度。
随着人们对计算机的使用,人们发现上述模型的计算机能力有限,在处理大量数据时就越发显得力不从心。为些人们对计算机模型进行了改进,提出了这种模型:
就是在中央处理器旁边加了一个内部存储器。这个模型的好处在于。先打个比方说,如果老师让你心算一道简单题,你肯定毫不费劲就算出来了,可是如果老师让你算20个三位数相乘,你心算起来肯定很费力,但如果给你一张草稿纸的话,你也能很快算出来。
可能你会问这和计算机有什么关系?其实计算机也是一样,一个没有内部存储器的计算机如果让它进行一个很复杂的计算,它可能根本就没有办法算出来,因为它的存储能力有限,无法记住很多的中间的结果,但如果给它一些内部存储器当“草稿纸”的话,计算机就可以把一些中间结果临时存储到内部存储器上,然后在需要的时候再把它取出来,进行下一步的运算,如此往复,计算机就可以完成很多很复杂的计算。
随着时代的发展,人们越来越感到计算机输入和输出方式的落后,改进这两方面势在必行。在输入方面,为了不再每次扳动成百上千的开头,人们发明了纸带机。纸带机的工作原理是这样的,纸带的每一行都标明了26个字母、10个数字和一些运算符号,如果这行的字母A上面打了一个孔,说明这里要输入的是字母A,同理,下面的行由此类推。这样一个长长的纸带就可以代表很多的信息,人们把这个纸带放入纸带机,纸带机还要把纸带上的信息翻译给计算机,因为计算机是看不懂这个纸带的。
这样虽然比较麻烦,但这个进步确实在很大程度上促进了计算机的发展。在发明纸带的同时,人们也对输出系统进行了改进,用打印机代替了计算机面板上无数的信号灯。打印机的作用正好和纸带机相反,它负责把计算机输出的信息翻译成人能看懂的语言,打印在纸上,这样人们就能很方便地看到输出的信息,再也不用看那成百上千的信号灯了。
不过人们没有满足,他们继续对输入和输出系统进行改进。后来人们发明了键盘和显示器。这两项发明使得当时的计算机和我们现在使用的计算机有些类似了,而且在些之前经过长时间的改进,计算机的体积也大大地缩小了。键盘和显示器的好处在于人们可以直接向计算机输入信息,而计算机也可以及时把处理结果显示在屏幕上。
可是随着人们的使用,逐渐又发现了不如意之处。因为人们要向计算机输入的信息越来越多,往往要输入很长时间后,才让计算机开始处理,而在输入过程中,如果停电,那前面输入的内容就白费了,等来电后,还要全部重新输入。就算不停电,如果人们上次输入了一部分信息,计算机处理理了,也输出了结果;人们下一次再需要计算机处理这部分信息的时候,还要重新输入。对这种重复劳动的厌倦导致了计算机新的模型的产生。
这回的模型是这样的:
这回增加了一个外部存储器。外部存储器的“外部”是相对于内部存储器来说的,在中央处理器处理信息时,它并不直接和外部存储器打交道,处理过程中的信息都临时存放在内部存储器中,在信息处理结束后,处理的结果也存放在内部存储器中。可是如果这时突然停电,那些结果还会丢失的。内部存储器(或简称内存)中的信息是靠电力来维持的,一旦电力消失,内存中的数据就会全部消失。也正因为如此,人们才在计算机模型中加入了外部存储器,把内存中的处理结果再存储到外部存储器中,这样停电后数据也不会丢失了。
外部存储器与内存的区别在于:它们的存储机制是不一样的,外部存储器是把数据存储到磁性介质上,所以不依赖于是否有电。这个磁性介质就好比家里的歌曲磁带,磁带上的歌曲不管有没有电都是存在的。当时人们也是考虑到了磁带这种好处,所以在计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘。
磁盘本来是圆的,不过装在一个方的盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。
有了磁盘之后,人们使用计算机就方便多了,不但可以把数据处理结果存放在磁盘中,还可以把很多输入到计算机中的数据存储到磁盘中,这样这些数据可以反复使用,避免了重复劳动。
可是不久之后,人们又发现了另一个问题,人们要存储到磁盘上的内容越来越多,众多的信息存储在一起,很不方便。这样就导致了文件的产生。
这和我们日常生活中的文件有些相似。我们日常生活中的文件是由一些相关信息组成,计算机的文件也是一样。人们把信息分类整理成文件存储到磁盘上,这样,磁盘上就有了文件1、文件2……。
可是在使用过程中,人们又渐渐发现,由人工来管理越来越多的文件是一件很痛苦的事情。为了解决这个问题,人们就开发了一种软件叫操作系统。
其实操作系统就是替我们管理计算机的一种软件,在操作系统出现之前,只有专业人士才懂得怎样使用计算机,而在操作系统出现之后,不管你是否是计算机专业毕业,只要经过简单的培训,你都能很容易地掌握计算机。
有了操作系统之后,我们就不直接和计算机的硬件打交道,不直接对这些硬件发号施令,我们把要的事情告诉操作系统,操作系统再把要作的事情安排给计算机去作,等计算机做完之后,操作系统再把结果告诉我们,这样就省事多了。
在操作系统出现之前,人们通过键盘给计算机下达的命令都是特别专业的术语,而有了操作系统之后,人们和计算机之间的对话就可以使用一些很容易懂的语言,而不用去死记硬背那些专业术语了。
操作系统不但能在计算机和人之间传递信息,而且字还负责管理计算机的内部设备和外部设备。它替人们管理日益增多的文件,使人们能很方便地找到和使用这些文件;它替人们管理磁盘,随时报告磁盘的使用情况;它替计算机管理内存,使计算机能更高效而安全地工作;它还负责管理各种外部设备,如打印机等,有了它的管理,这些外设就能有效地为用户服务了。
也正因为操作系统这么重要,所以人们也在不断地改进它,使它的使用更加方面,功能更加强大。对于咱们现在使用的微机来说,操作系统主要经历了DOS、Windows 3.X、Windows95和Windows98这几个发展阶段。
在DOS阶段,人们和计算机打交道,还是主要靠输入命令,“你输入什么命令,计算机就做什么,如果你不输入,计算机就什么也不做”。在这一阶段,人们还是需要记住很多命令和它们的用法,如果忘记了或不知道,那就没有办法了。所以说,这时的计算机还是大太好用,操作系统也处于发展的初级阶段。Windows的出现在很大程度上弥补了这个不足,人们在使用Windows时,不必记住什么命令,只需要用鼠标指指点点就能完成很多工作。而当操作系统发展到Windows95之后,使用计算机就变得更加简单。
现在我们来简单总结一下上面我们讲的一些内容。经过人们几十年的努力,计算机的组成结构已经基本定型,现在我们日常使用的微机在硬件方面可以用下图表示:这里CPU就是我们以前谈到的中央处理器的英文缩写,它和其它辅助电路构成了计算机的核心。我们通过键盘和其它输入设备输入的信息经过它的处理之后显示在显示器上。在信息处理过程中,CPU要和内存频繁地交换信息,在工作结束之后,还要把内存中的数据保存在磁盘上。
上面说的是硬件的工作原理,那么在软件上,我们又是如何使用计算机的呢?
在前面我们讲过,我们可以通过操作系统给计算机布置工作,操作系统也可以把计算机的工作结果告诉我们。可是操作系统的功能也不是无限的,实际上计算机的很多功能是靠多种应用软件来实现的。操作系统一般只负责管理好计算机,使它能正常工作。而众多的应用软件才充分发挥了计算机的作用。但这些应用软件都是建立在操作系统上的,一般情况下,某一种软件都是为特定的操作系统而设计的,因为这些软件不能直接和计算机交换信息,需要通过操作系统来传递信息。
这就是所谓的“硬”、“软”结合。硬件就是我们能看见的这些东西:主机、显示器、键盘、鼠标等,而软件是我们看不见的,存在于计算机内部的。打个比方,硬件就好比人类躯体,而软件就好比人类的思想,没有躯体,思想是无法存在的,但没有思想的躯体也只是一个植物人。一个正常人要完成一项工作,都是躯体在思想的支配下完成的。电脑和这相类似,没有主机等硬件,软件是无法存在的;而一个没有软件的计算机也只是一堆废铁。
还有一个重要的概念没有讲,就是操作系统是如何管理文件的呢?其实也很简单,文件都有自己的名字,叫文件名,用来区分不同的文件的。计算机中的文件有很多,成千上万,光用名字来区分也不利于查找,所以计算机中又有了文件夹的概念,把不同类型的文件存储在不同的文件夹中,查找起来就快多了,也不会太乱。文件多了,可以分别存储在不同的文件夹中,而当文件夹多了之后,再把一些相关的文件夹存储在更在的文件夹中,这样管理文件是比较科学的。

计算机用二进制来表示数字,浮点数也是如此:
首先了解如何用二进制表示小数(也就是如何把十进制小数转化为二进制表示):
举一个简单例子,十进制小数 10.625
1)首先转换整数部分:10 = 1010b
2)小数部分0.625 = 0.101b
(用“乘2取整法”:0.625*2=1.25,得第一位为1,0.25*2=0.5,得第二位为0,0.5*2=1, 得第三位为1,余下小数部分为零,就可以结束了)
3)于是得到 10.625=1010.101b
换个表示方式更加深入理解:
1*(10^1)+0*(10^0)+6*(10^-1)+2*(10^-2)+5*(10^-3) =
1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) + 1*(2^-1) + 0*(2^-2) + 1*(2^-3)
4) 类似十进制可以用指数形式表示:
10.625=10625*(10^-3)
所得的二进制小数也可以这样指数形式表述:
1010.101b=1010101 * (2^-3)
也就是用有效数字a和指数e来表述: a * (2^e)
用一个32bit的空间(bit0~bit31)来存储这么一个浮点数,如此分配存储空间:
bit0 ~ bit22 共23bit,用来表示有效数字部分,也就是a,本例中a=1010101
bit23 - bit30 共8个bit,用来表是指数,也就是e,范围从-128到127,实际数据中的指数是原始指数加上127得到的,如果超过了127,则从-128开始计,所以这里e=-3表示为124
bit31 为符号位,1表示负数,这里应该为0
把上述结果填入32bit的存储器,就是计算机表示小数10.625的形式。

注意这个例子的特殊性:它的小数部分正好可以用有限长度的2进制小数表示,因此,而且整个有效数字部分a的总长度小于23,因此它精确的表示了10.625,但是有的情况下,有效数字部分的长度可能超过23,甚至是无限多的,那时候就只好把后面的位数截掉了,那样表示的结果就只是一个近似值而非精确值;显然,存储长度越长,精度就越高,比如双精度浮点数长度为64位,1位符号位,11位指数位,52位有效数字。

  • C/C++娴偣鏁板湪鍐呭瓨涓鏄庝箞瀛樺偍鐨
    绛旓細闃剁爜鐨勬渶宸﹂偅涓浣嶈〃绀哄皬鏁扮偣绉诲姩鐨勬柟鍚戙傚湪闃剁爜鍓嶆坊鍔1浣嶈〃绀烘暣涓诞鐐规暟鐨勬璐燂紝0琛ㄧず澶т簬绛変簬0锛1琛ㄧず灏忎簬0銆傛妸杩欎竴涓0銆1搴忓垪鍦ㄥ皬绔満涓婄敱鍙宠嚦宸瀛樺偍鍦ㄦ煇涓湴鍧寮濮嬬殑杩炵画鍐呭瓨鍗曞厓涓紝杩欌滄煇涓湴鍧鈥濆氨鏄壙杞借繖涓娴偣鍨嬫暟鎹鐨勫彉閲忕殑鍦板潃銆傝嫢鍦ㄥぇ绔満涓婂垯灏嗚繖涓涓0銆1搴忓垪鐢卞乏鑷冲彸瀛樻斁銆
  • 鍏充簬娴偣鏁鍦ㄨ绠楁満涓殑瀛樺偍鐨勯棶棰
    绛旓細瀛樻斁鏁存暟閮ㄥ垎鐨勫彧瀛樻斁鏁存暟銆傚彟涓閮ㄥ垎鐢ㄦ潵瀛樻斁灏忔暟閮ㄥ垎銆2鐨勬骞傝〃绀烘寚鏁扮殑鎰忔濇槸锛11.11=0.1111x2鐨10娆″箓=0.01111x2鐨100娆″箓=1111x2鐨-10娆″箓銆
  • 鏁版嵁鍦ㄨ绠楁満鍐呭瓨涓殑琛ㄧず鏄寚浠涔
    绛旓細璁$畻鏈鍐呭瓨浠ュ瓧鑺備负鍗曚綅杩涜瀛樺偍锛屾瘡涓瓧鑺傞兘鏈変竴涓敮涓鐨勫湴鍧銆傛暟鎹彲浠ヤ互涓嶅悓鐨勫舰寮忓拰鏍煎紡瀛樺偍锛屽寘鎷暣鍨嬨佹诞鐐瑰瀷銆佸瓧绗﹀瀷绛夈傚浜庢暣鍨嬫暟鎹紝璁$畻鏈轰娇鐢ㄤ簩杩涘埗琛ョ爜琛ㄧず锛涘浜娴偣鍨嬫暟鎹锛岄噰鐢↖EEE754鏍囧噯杩涜琛ㄧず锛涘浜庡瓧绗﹀瀷鏁版嵁锛屼娇鐢ˋSCII鐮佹垨Unicode缂栫爜杩涜琛ㄧず銆鏁版嵁鍦鍐呭瓨涓殑瀛樺偍缁撴瀯鍐冲畾浜嗕汉浠浣曡鍙...
  • 涓轰粈涔璁$畻鏈鐨鏁版嵁瀛樺偍閮芥槸娴偣鏁板舰寮忕殑鍛?
    绛旓細杩欐槸瑙勫畾锛屽綋灏炬暟鍑虹幇00.0...鎴11.1...鏃讹紝闇宸﹁锛涘綋灏炬暟鍑虹幇01. ...鎴10. ...鏃讹紝琛ㄧず灏炬暟婧㈠嚭锛岃杩涜鍙宠銆娴偣鏁帮紝鏄睘浜庢湁鐞嗘暟涓煇鐗瑰畾瀛愰泦鐨鏁扮殑鏁板瓧琛ㄧず锛鍦ㄨ绠楁満涓敤浠ヨ繎浼艰〃绀轰换鎰忔煇涓瀹炴暟銆傛诞鐐硅绠 娴偣璁$畻鏄寚娴偣鏁板弬涓庣殑杩愮畻锛岃繖绉嶈繍绠楅氬父浼撮殢鐫鍥犱负鏃犳硶绮剧‘琛ㄧず鑰岃繘琛岀殑杩戜技...
  • 娴偣鍨嬫暟鎹鍜屽弻绮惧害鍨嬫暟鎹殑鍖哄埆
    绛旓細鐢4涓瓧鑺傦紙32浣嶏級鏉ュ瓨鏀句竴涓诞鐐规暟锛屽熬鏁版湁7涓湁鏁堟暟瀛楀乏鍙筹紝鍙崟绮惧害娴偣鏁帮紝鐢64浣嶆潵瀛樻斁锛屽熬鏁版湁鏁堟暟瀛楀彲浠ュ鍔犲埌15浣嶆垨16浣嶏紝鍙弻绮惧害娴偣鏁般傝浣娴偣鍨嬫暟鎹鍜屽弻绮惧害鍨嬫暟鎹殑鑼冨洿澶у皬锛屽灏戜綅鐨勫氨鍙互浜嗐傜敤鐨勬椂鍊欐兂鍒板氨鍙互
  • 娴偣鍨3.5杩欎釜鏁鎬庝箞鍦ㄨ绠楁満涓鍌ㄥ瓨鐧借瘽鏂,绠鍗曟槗鎳傜殑,c璇█鎵嶅垰鍏...
    绛旓細http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html 鐪嬭繖绡囧崥瀹傜畝鍗曡灏辨槸01瀛樺偍銆傛湁瀛樺偍鐨勮鑼冿紝杩欎釜瑙勮寖灏变笉鏄1銆2鍙ヨ瘽璇寸殑娓呮銆傝鐪嬩笂闈㈢殑鏂囩珷銆
  • 娴偣鍨嬫槸浠涔堟剰鎬
    绛旓細瓒呭嚭鍏惰寖鍥寸殑鏁板鍙兘琚垗鍏ヤ负鏃犵┓澶ф垨鑰呴浂锛屽鑷磋绠楃粨鏋滃嚭鐜板紓甯搞傛渶鍚庯紝娴偣鍨嬪湪璁$畻鏈鍐呴儴鐨瀛樺偍澶у皬杈冨ぇ锛屽彲鑳戒細鍗犵敤杈冨鐨勫唴瀛樼┖闂淬傜患涓婃墍杩帮紝娴偣鍨嬫槸涓绉嶅父鐢ㄧ殑鏁板瓧鏁版嵁绫诲瀷锛屽彲浠ヨ〃绀哄疄鏁版垨甯︽湁灏忔暟鐐圭殑鏁板硷紝鍏锋湁骞挎硾鐨勫簲鐢紝浣嗕篃闇瑕佹敞鎰忓叾绮惧害闂鍜屽瓨鍌ㄥぇ灏忕殑闄愬埗銆
  • 娴偣鍨鍜屾暣鍨嬬殑鍖哄埆
    绛旓細3. 鑼冨洿涓嶅悓锛氭暣鍨嬫暟鎹被鍨嬬殑鑼冨洿杈冨皬锛屼緥濡8浣嶆棤绗﹀彿鏁村瀷鏁版嵁绫诲瀷鍙互琛ㄧず0-255涔嬮棿鐨勬暣鏁般傝娴偣鍨嬫暟鎹绫诲瀷鐨勮寖鍥存洿澶э紝渚嬪32浣嶆诞鐐瑰瀷鏁版嵁绫诲瀷鍙互琛ㄧず-3.402e+38鍒3.402e+38涔嬮棿鐨勬诞鐐规暟銆傛讳箣锛屾诞鐐瑰瀷鍜屾暣鍨鏁版嵁绫诲瀷鍦ㄨ绠楁満涓瀛樺偍鍜岃〃绀烘暟鎹殑鏂瑰紡涓嶅悓锛屽畠浠叿鏈変笉鍚岀殑鐗圭偣鍜岀敤閫斻傚湪缂栧啓绋嬪簭...
  • C璇█涓璂OUBLE鍨嬫暟鎹偍瀛缁撴灉
    绛旓細鍐呭瓨鍒嗗竷锛欳/c++鐨娴偣鏁版嵁绫诲瀷鏈塮loat鍜宒ouble涓ょ銆俧loat澶у皬涓4瀛楄妭锛屽唴瀛樹腑鐨瀛樺偍鏂瑰紡濡備笅锛氱鍙蜂綅(1bit)鎸囨暟(8bit)灏炬暟(23bit)double澶у皬涓8瀛楄妭锛屽唴瀛樹腑鐨勫瓨鍌ㄦ柟寮忓涓嬶細绗﹀彿浣(1bit)鎸囨暟(11bit)灏炬暟(52bit)绗﹀彿浣嶅喅瀹娴偣鏁扮殑姝h礋锛0姝1璐熴傛寚鏁板拰灏炬暟鍧囦粠娴偣鏁扮殑浜岃繘鍒剁瀛﹁鏁板舰寮忎腑鑾峰彇銆
  • float鍦c璇█涓殑鎰忔
    绛旓細鐗圭偣锛娴偣鍨嬫暟鎹绫诲瀷锛岄氫織鐐硅鍒╃敤鎸囨暟浣垮皬鏁扮偣鐨勪綅缃彲浠ユ牴鎹渶瑕佽屼笂涓嬫诞鍔紝浠庤屽彲浠ョ伒娲诲湴琛ㄨ揪鏇村ぇ鑼冨洿鐨勫疄鏁般俧loat鍗犵敤32浣瀛樺偍绌洪棿鐨勫崟绮惧害锛坰ingle-precision锛夊笺傚湪涓浜涘鐞嗗櫒涓婃瘮鍙岀簿搴︽洿蹇屼笖鍙崰鐢ㄥ弻绮惧害涓鍗婄殑绌洪棿锛屼絾鏄綋鍊煎緢澶ф垨寰堝皬鐨勬椂鍊欙紝瀹冨皢鍙樺緱涓嶇簿纭傚綋浣犻渶瑕佸皬鏁伴儴鍒嗗苟涓斿绮惧害...
  • 扩展阅读:浮点型计算器在线使用 ... 浮点型数据2143格式排列 ... 双浮点计算器安卓版 ... 合法的浮点型数据为 ... 万能计算器 ... 浮点型数据的规则 ... 双浮点计算器游戏修改 ... 浮点型数据在线转换 ... 计算机的一个浮点数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网