什么是计算机?谁发明的计算机?计算机能做什么?
让小编带你进入计算器的诞生,从中了解它吧。
计算机简史
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。
计算机是在20世纪由 “约翰·冯·诺依曼” 发明,“约翰·冯·诺依曼” 也被称为 “现代计算机之父”。再之前还有 ”约翰·阿塔那索夫“ 被称为”电子计算机之父“、”艾伦·麦席森·图灵“ 被称为 ”计算机科学之父“、“查尔斯·巴贝奇” 被称为 “通用计算机之父”(有兴趣的,可以去了解一下)。
就是这些人的付出,才有了我们现在的互联网,是不是很伟大啊。
计算机换代阶段
首先,我们现需要了解计算机大概经历以下几个更新换代阶段(参考百度百科,了解即可):在这里小编就简单的说一下
第1代:电子管数字机(1946-1958年)
逻辑元件采用的是真空电子管,主存储器采用汞延迟线电子管、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用的是磁带。软件方面采用的是机器语言、汇编语言。应用领域以军事和科学计算为主。
特点:
体积大、功耗高、可靠性差。速度慢(一般为每秒数千次至数万次)、价格昂贵, 但为以后的计算机发展奠定了基础。
第2代:晶体管数字机(1958-1964年)
操作系统、高级语言及其编译程序应用领域以科学计算和事务处理为主,并开始进入工业控制领域。
特点:
体积缩小、能耗降低、可靠性提高、运算速度提高(一 般为每秒数10万次, 可高达300万次)、性能比第1代计算机有很大的提高。
第3代:集成电路数字机(1964-1970年)
逻辑元件采用中、小规模集成电路(MSI、 SSI) ,主存储器仍采用磁芯。软件方面出现了分时操作系统以及结构化、规模化程序设计方法。
特点:
速度更快(一般为每秒数百万次至数千万次),而且可靠性有了显著提高,价格进一步下降,产品走向了通用化、系列化和标准化等。应用领域开始进入文字处理和图形图像处理领域。
第4代:大规模集成电路机(1970年至今)
逻辑元件采用大规模和超大规模集成电路(LSI和VLSI) 。软件方面出现了数据库管理系统、型计算机的新时代。应用领域从科学计算、务管理、过程控制逐步走向家庭。
特点:
机体积小,价格便宜,使用方便,但它的功能和运算速度已经达到甚至超过了过去的大型计算机。
计算机结构简述
现代计算机结构一般有两种,分别是冯·诺依曼结构和哈佛结构。
下面是冯·诺依曼型结构图:
下面是哈佛结构图:
冯·诺依曼结构和哈佛结构的区别:
冯诺依曼结构和哈佛结构最大的区别在于冯诺依曼结构采用程序指令和数据统-编址,使用同-条总线进行传输;而哈佛结构程序指令和数据是分开编址(两个存储器),同时分开总线进行传输;由于编址不同,所以冯诺依曼的数据和指令位数必须相同,而哈佛结构的数据和指令可以不同;理论上哈佛结构具有较高的执行效率。
冯·诺依曼结构和哈佛结构应用场景:
虽然哈佛结构具有较高的执行效率,但哈佛结构并不是用来替代冯诺依曼的,它们在不同的场景下各有千秋; 一般来说,冯诺依曼结构主要应用于通用计算机领域,哈佛结构主要应用于嵌入式计算机领域。
二进制简述
说到计算机不得不了解一下二进制, 因为计算机是由逻辑电路组成,通常只有两个状态,开(1) 和关(0),所以目前市面上计算机基本都是采用二进制数来存储和运算的。
二进制的基数为2,右边称为低位,左边称为高位,进位规则是从右边位数开始计算”逢二进
一,原位为0”,借位规则是"借-当二”,例如:
1+1=10,右边第一位开始计算,因为1+1=2,逢二进一,原位为0后就是10
101+1=110,右边第一 位开始计算, 因为1+1=2,逢二进~原位为0后就是110
101+1=110,右边第一 位开始计算, 因为1+1=2,逢二进~原位为0后就是110
一) ,下面描述各个进制基本数字: .
二进制:0、1
十进制: 0、...9
八进制: 0、1..7
十六进制: 0、 .... ... (十六进制A代表10, B代表...F代表15)
不同进制之间任意两个都可以进行转换,但是要记住计算机存储只能是二进制,如果要处理或存储其它进制则一般需要转为二进制。
二),下面给出一 些进制之间转换规则:
十进制转二进制,除2取余法。
十进制转八进制,除8取余法。
十进制转十六进制,除1 6取余法。
二进制转十进制,从右边开始从0开始第n位数值乘以2的n次方。
八进制转十进制,从右边开始从0开始第n位数值乘以8的n次方。
十六进制转十进制,从右边开始从0开始第n位数值乘以1 6的n次方。
八进制转十六进制可以先将八进制转为二进制或十进制,然后再将八进制或+进制转为十六进制。
下面简单举个二进制和十进制之间转换的例子:
1、十进制转为二进制
[图片上传中...(image-aff5c5-1616719140408-2)]
如果是十进制转为八进制,则是除以8,如果是十进制转为16进制则是除以16,其它规则不变。
2、二进制转为十进制
如果是八进制转为十进制则2的n次方则改为8的n次方,如果是十六进制转为十进制则2的n次方则改为16的n次方,其它规则不变。更多进制相关的知识有兴趣可以阅读计算机基础专业相关书籍。
二进制数据又是如何在磁盘上存储的呢?要回答这个问题可能要写半本书才能详细讲清楚,这里为了便于理解只做个简单抽象的讲解。对于机械硬盘来说,磁盘内部一般有控制电路板、传动手臂、转动轴、主轴、马达、盘片(一 个或多个)、读写磁头(每个盘片一个)等;其中盘片被分为扇区和磁道,数据就是存储在盘片的扇区的磁道中。
存储方式是通过在盘片上下表面都涂有磁性材料,每个磁道有独立的两极方向,控制器控制读写磁头来改变每个磁道单元内的磁体方向来表示一个二进制单元(比特Bit) ,例如N极和S极分别代表0和1。
这里只是高度抽象磁盘存储原理,实际磁盘工作原理是非常细致和复杂的,更多关于磁盘存储原理相关有兴趣可以阅读计算机存储原理相关书籍。
存储单位
存储单位是一种计量单位。指在某-领域以一个特定量或标准做为一个计数点。计算机内部都是采用二进制进行存储、运算和处理数据的,其中数据存储的单位有位(Bit)、 字节(Byte,B)、字(Word)、KB、MB、 GB、TB等,下面是每个单位的描述:
位(Bit) :二进制数一个数位, 0或1, 是计算机中最小单位。
字节(Byte) :计算机基本单位,1个字节等于8位。
字(Word) : 1个字等于2个字节。-个汉字就是2个字节。
KB: 1KB = 1024Byte .
MB: 1MB = 1024KB
GB: 1GB = 1024MB
TB: 1TB = 1024GB
除了位之外,其它计算机存储单位都是基于位(Bit) 进行换算的。设计不同单位换算是为了更方便阅读。
编码表简述
通过前面我们了解到计算机内部都是二进制,那么很直接一个问题就来 了,我们平时上网或工作是看到和使用的可不是像前面说的一大串的0或1,而是有感情的文字,栩栩余生的图片和视频等,难道这些不是存储在计算机里面的?这个我们就要再了解一个叫做编码表的神奇设计。例如我们常常看到的英文单词或英文符号是ASCII(American Standard Code forInformation Interchange:美国信息交换标准代码)编码表对照出来的,下面是截取部分。
ASCII字符编码表:
(小编在这里只截取了一张图,想要了解ASCLL字符编码,可搜索关键即可查到,网上都有)
ACSII一般用来表示英文, 但是不同国家不同的语言,所以除了ASCII编码表外每个国家都有一套自己国家语言的对应二进制的编码表,比如我国中文采用的便是GB (国标)开头的编码表:GB2312 (共收录7445个字符,其中汉字6763个)、GBK (收录了21003个汉字)、GB18030 (收录70000余个汉字)等。国家语言我们大概知道是怎么回事,那么图片又是怎么来的呢?
图片是通过将不同位置的像素点进行标色形成的,像素抽象理解就像在某个平面上画了很多小格子;例如图分辨率1010的意思是水平方向每英寸有10个像素点,垂直方向每英寸有10个像素点,通过给每个像素点(小格子)进行标色,再将颜色转为RGB (RGB是红蓝绿三个颜色简称,每个颜色用8位二进制(2的八次方=256)来表示,RGB共可以表示256256*256= 1670万色),最后将三个RGB转为二进制进行保存即可。
最后我们思考一个问题, 由于不同国家有不同的编码,相互通信的时候由于解码方式不同就会导致乱码,没法信息交换这可是一件大事。这时就出现了大名鼎鼎的Unicode万国编码来拯救
这个难题,Unicode为世界 上所有字符都分配了-个唯一的数字编号。Unicode就相当于一张大型映射表,建立了字符与编号之间的联系, Unicode收录的字符高达100多万个。
由于Unicode被认为存在大量浪费空间的现象,所以实际上Unicode编码并没有被互联网广泛使用,而真正被广泛使用的是后来出现的UTF-8, UTF-8是基于Unicode编码的设计基础上对浪费空间进行算法优化,直到目前为止UTF- 8是互联网上使用最广泛的一种传输编码方式。
软件、开发语音简述
前面我们简单讲述了计算机重要的知识点,那么我们通常接触到的更多的实际都是跟软件相关的,比如操作系统(文件管理)、表格工具、淘宝、抖音等它们都属于软件范畴。那么软件在计算机中又是怎么的一种存在呢?
硬件是计算机最基础的物理存在,像CPU、磁盘、主板、显示器、键盘、内存条、网卡、显卡、电源等。这些硬件组成的计算机对外分别提供了不同的基础种能力(例如运算、存储),对于我们常人来说怎么去利用这些能力呢?其实硬件厂商-般都会将硬件的能力通过指令的方式对外提供出来,外部客户端可以通过指令去使用它们。如果让每个人都要学习不同硬件的指令集才能使用计算机,那计算机入门门槛也太高了,软件的出现就是解决这个问题的。另外软件除了解决这个问题外,软件还拥有自身的产品价值。
软件一般分为系统软件、驱动软件跟应用软件,系统软件(Windows、 类Unix) 被认为是最基础的软件,它统一组合封装了底层各种不同硬件(CPU、 磁盘、键盘、显示器、网卡、显卡等)的指令集,重新提供了-套新的更加友好和聚合后的系统软件API。
目前我们接触最多软件是应用软件(淘宝、抖音、表格工具),应用软件是通过某种开发语言(Java、C、Python) 开发出来的。开发语言(Java、 C、Python) 底层再次封装了系统软件的调用重新提供了一套更人性化、 可读性更强的开发语言API和规则供给现有程序员去进行应用的开发。
[没图,小编就在这儿简单描述一下]硬件、系统软件、应用软件、开发语言之间的关系:
从我们现在开始用的淘宝、抖音、表格工具等这些都是应用软件层(开发语言实现)
那么谁可以执行这些软件呢?就是电脑中的系统软件层
如:windows系统、Linux系统等。
在操作系统之下,能够支撑启动这些软件是什么?就是我们的所说的硬件层
如:磁盘、CPU、内存、网卡、显卡等(一些硬件是要了解一下的)
小结:
计算机相关知识可以单独写好几本砖头厚的书,这里小编只是简单的介绍了部分需要了解的基础知识。如果有兴趣深入学习计算机硬件和基础相关知识可以阅读相关专业书籍。了解计算机基础知识可以帮助我们后面在编程的道路更加知其然,实际上你也完全可以跳过本章直接进入Java章节进行学习,等把Java学好了再回过头来学习计算机相关知识也是没问题的。
都看到这里了,学习计算机是不是很有趣啊,学计算机的我们都应该要了解计算机的发展史,想知道计算机是怎么工作的吗?(这个小编就不写了,可以去百度百科看一看就好 计算机工作原理)。
点赞关注,阿乐带你走进 Java编程!