C语言__计算机基础知识

本文介绍了计算机基础知识,包括“计算机之父”巴贝奇、图灵、阿坦那索夫和冯·诺依曼的贡献,图灵奖的重要地位,以及计算机硬件如CPU、内存和硬盘之间的关系。此外,讨论了计算机的32位和64位的区别,并概述了编程语言的发展历程和分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言__计算机基础知识


计算机之父

“计算机之父”这种笼统的称谓没有明确的结果。你可以认为是图灵,也可以认为是冯·诺依曼,你认为是谁就是谁。非要叫的话可以是:

  1. 巴贝奇Charles Babbage——通用计算机之父
  2. 图灵Alan Turing——计算机科学之父
  3. 约翰·阿坦那索夫John Vincent Atanasoff——电子计算机之父
  4. 冯·诺依曼John von Neumann——现代计算机之父

计算机领域最高奖项——图灵奖

图灵在科学、特别在数理逻辑和计算机科学方面,取得了举世瞩目的成就,他的一些科学成果,构成了现代计算机技术的基础。他提出不管多么复杂的算法,都可以采用顺序,选择,循环三种流程控制来完成。

图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵试验,至今,每年都有试验的比赛。此外,图灵提出的著名的图灵机模型为现代计算机逻辑工作方式奠定了基础。

图灵奖对获奖者的要求极高,评奖程序极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名在同一方向上做出贡献的科学家同时获奖。因此,尽管“图灵”的奖金数额不算高,但它却是计算机界最负盛名的奖项,有“计算机界诺贝尔奖”之称。

计算机硬件

计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电 元件等组成的各种物理装置的总称。这些物理装置按 系统结构的要求构成一个有机整体为 计算机软件运行提供物质基础。简言之,计算机硬件的功能是输入并存储程序和 数据,以及 执行程序把数据加工成可以利用的形式。在用户需要的情况下,以用户要求的方式进行数据的输出。
从外观上来看,微机由 主机箱和 外部设备组成。主机箱内主要包括CPU、 内存、主板、 硬盘驱动器光盘驱动器、各种扩展卡、 连接线、电源等;外部设备包括鼠标、 键盘等。

冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。他提出计算机应该具备包括:运算器、控制器、存储器、输入和输出设备等五种设备。该理论至今沿用。

计算机的硬件举例

1中央处理器如CPU,以前的387浮点协处理器等

2 内存储器:内存

3外存储器:如硬盘,软盘,光盘和一些磁带机等等

4 输入设备:键盘,鼠标,扫描仪,麦克声控,摄像头都算

5 输出设备:打印机,显示器等等

计算机的存储单位

计算机采用二进制,其储存的信息就是用二进制表示的,他的单位有(从小到大)B(字节,计算机系统的直接操作最小单位)、KB、MB、GB、TB等。比B(字节)还小的是b(位),一位存储的数据只有0或者1,8个连续的位就是一个字节。单位的换算为:1B=8b 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB

可以看出计算机的存储的进率是1024而不是1000。这是因为目前 计算机都是二进制的,让它们计算单位,只有2的整数幂时才能非常方便计算机计算。电脑内部的电路工作有高电平和低电平两种状态.所以就用二进制来表示信号,(控制信号和数据),以便计算机识别。而人习惯于使用10进制,所以存储器厂商们才用1000作进率。这样导致的后果就是实际容量要比标称容量少,不过这是合法的。1024是2的10次方,因为如果取大了,不接近10的整数次方,不方便人们计算;取小了,进率太低,单位要更多才能满足需求,所以取2的10次方正好。

计算机的32位和64位的区别

第一,设计初衷不同。64位操作系统的设计初衷是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。 

第二,要求配置不同。64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。 

第三,运算速度不同。64位CPU的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。

第四,寻址能力不同。64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,64位系统支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存(实际使用比这还要少)。 

CPU、内存、硬盘之间的关系

CPU不能直接多硬盘的数据进行操作,需要内存做媒介才能够操作。内存和硬盘的最大的区别是内存的效率比硬盘高太多。CPU通过控制总线、数据总线、地址总线来控制内存中的信号(控制信号和数据信号)的信息传送是由数据总线。信息寻址是由地址总线,控制是读还是写信息是由控制总线

操作系统的开发的方向

【答】操作系统开发/驱动程序开发/数据库开发等

应用软件的开发方向

【答】办公软件开发/图形图像多媒体开发/嵌入式软件开发/游戏开发等

编程语言的发展路程

【机器语言】——>【汇编语言】——>【高级语言】

机器语言:二进制是计算的语言的基础,即由"0"和"1"组成的二进制语言。

汇编语言:为减少编程人员痛苦,用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用"ADD"代表加法,"MOV"代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。汇编语言的优势是实现对计算机硬件的直接操作。

高级语言:C、C++,C#、java等

编程语言的分类

编程语言主要从以下几个角度进行分类:

1. 高级语言和低级语言

    常见的低级语言有:机器码、汇编语言。

    高级语言常见如:c,c++,java,python,PHP,c#,Ruby,go,kotlin,swift。

    高级语言与低级语言的区别:高级语言大部分不能直接更硬件打交道,这使得相对来的程序运行速度降低,总之一句话来说那种语言更接近人性化的语言就更高级。

2. 动态类型和静态类型

    动态性语言是指在程序运行期间才给变量指定数据的类型,常见于python和Ruby,而静态类型语言则恰好相反,在写程序代码的时候就要指定变量的类型,这种语言有:c,c++,java

3. 强制类型和弱类型

    我们可知C语言中,一个变量只能定义为一种类型,如float类型,那么它就只能是float类型而不能在不发生转化的情况下赋予int类型,这就是 **强制类型** 的具体体现。

    而python不是,python中的变量可以任意的复制,而没有类型的界限。这就是**弱类型**

    强制类型更严谨,更不容易出现错误,但弱类型的语言写起来更优雅,更舒畅

4. 编译型,解释型,半编译半解释

    对于源程序,编译型语言在执行程序中会将源文件一次性的转化为机器码,而解释型语言是边编译边解释;编译型语言是离不开解释程序的,这也导致了解释性语言对于运行时候的速度比价慢,解释型语言只要有解释器,移植起来比较方便,而编译型语言则要对于不同的系统进行编译,是的工作繁琐,且在调试程序的时候比较慢

    编译型语言可见于c,c++等
    解释型语言可见于python,JavaScript,Perl,shell等

    而java是半编译半解释型的语言,java会将源文件在jVM中转化为字节码,即.class文件,在程序运行的时候转化为二进制文件。和C#中的.net有点区别,C#编译的成的.net目标代码,接近与二进制文件,可移植性没有java好,java是“一次编译,到处执行”,c#是“一次编码,到处编译”。

5. 面向对象型和面向过程型

    面向过程是决定该怎么铺成一条路到达终点,而面向对象是要用那些具有特定功能的像来做,两者是不同的思想。
    c语言是面对过程的语言,c++是部部分面对对象的,java具有封装性是完全面对对象的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值