计算机的工作原理

计算机能做什么(这是学习c语言的分支)

在学习如何用C语言编程之前,最好先了解一下计算机的工作原理,这些知识有助于你理解用C语言
编写程序和运行C程序时所发生的事情之间有什么联系
现代的计算机由多种部件构成。中央处理单元(CPU)承担绝大部分的运算工作、机在取内在△M)
是存储程序和文件的工作区:而永久内存存储设备(过去一般指机械硬盘,现在还包括固态硬盘)即使在
关闭计算机后,也不会丢失之前存储的程序和文件。另外,还有各种外围设备(如,键盘、鼠标,触摸屏
监视器)提供人与计算机之间的交互,CPU负责处理程序,接下来我们重点讨论它的工作原理CPU的工作非常简单,至少从以下简短的描述中看是这样。它从内存中获取并执行一条指令,然后再从内存中获取并执行下一条指令,诸如此类(一个吉赫的CPU一秒钟能重复这样的操作大约十亿次,因此,CPU能以惊人的速度从事枯燥的工作)。CPU有自己的小工作区一由若干个寄存器组成,每个寄存器都可以存储一个数字。一个寄存器存储下一条指令的内存地址,CPU使用该地址来获取和更新下一条指令。在获取指令后,CPU在另一个寄存器中存储该指令,并更新第1个寄存器存储下一条指令的地址。CPU能理解的指令有限(这些指令的集合叫作指令集)。而且,这些指令相当具体,其中的许多指令都是用于请求计算机把一个数字从一个位置移动到另一个位置。例如,从内存移动到寄存器。下面介绍两个有趣的知识。其一,存储在计算机中的所有内容都是数字,计算机以数字形式存储数字和字符(如,在文本文档中使用的字母)。每个字符都有一个数字码。计算机载入寄存器的指令也以数字形式存储,指令集中的每条指令都有一个数字码。其二,计算机程序最终必须以数字指令码(即,机器语言)来表示。简而言之,计算机的工作原理是:如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序。这是项繁琐、乏味、费力的任务。计算机要完成诸如两数相加这样简单的事,就得分成类似以下几个步骤。
1.从内存位置2000上把一个数字拷贝到寄存器1
2.从内存位置2004上把另一个数字拷贝到寄存器2
3.把寄存器2中的内容与寄存器1中的内容相加,把结果存储在寄存器1中
4.把寄存器1中的内容拷贝到内存位置2008
而你要做的是,必须用数字码来表示以上的每个步骤
如果以这种方式编写程序很合你的意,那不得不说抱歉,因为用机器语言编程的黄金时代已一去不复
返。但是,如果你对有趣的事情比较感兴趣,不妨试试高级编程语言。

2高级计算机语言和编译器
高级编程语言(如,C)以多种方式简化了编程工作,首先,不必用数字码表示指令:其次,使用的指令更贴近你如何想这个问题,而不是类似计算机那样繁琐的步骤。使用高级编程语言,可以在更抽象的层面表达你的想法,不用考虑CPU在完成任务时具体需要哪些步骤。例如,对于两数相加,可以这样写:
total mine yours:
对我们而言,光看这行代码就知道要计算机做什么;而看用机器语言写成的等价指令(多条以数字码形式表现的指令)则费劲得多。但是,对计算机而言却恰恰相反。在计算机看来,高级指令就是一堆无法理解的无用数据。编译器在这里派上了用场。编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序。程序员进行高级思维活动,而编译器则负责处理冗长乏味的细节工作。
编译器还有一个优势。一般而言,不同CPU制造商使用的指令系统和编码格式不同。例如,用 Intel Core
i7(英特尔酷睿7)CPU编写的机器语言程序对于 ARM Cortex-A57CPU而言什么都不是。但是,可以找
到与特定类型CPU匹配的编译器。因此,使用合适的编译器或编译器集,便可把一种高级语言程序转换成供各种不同类型CPU使用的机器语言程序。一且解决了一个编程问题,便可让编译器集翻译成不同CPU使用的机器语言。
简而言之,高级语言(如C、Java、 Pasca)以更抽象的方式描述行为,不受限于特定CPU或指令集
而且,高级语言简单易学,用高级语言编程比用机器语言编程容易得多。
(1964年,控制数据公司( Control Data Corporation)研制出了CDC6600计算机。这台庞然大物是
世界上首台超级计算机,当时的售价是600万美元。它是高能核物理研究的首选。然而,现在的普通
智能手机在计算能力和内存方面都超过它数百倍,而且能看视频,放音乐。
1964年,在工程和科学领域的主流编程语言是 FORTRAN。虽然编程语言不如硬件发展那么突飞
猛进,但是也发生了很大变化。为了应对越来越大型的编程项目,语言先后为结构化编程和面向对象
编程提供了更多的支持。随着时间的推移,不仅新语言层出不穷,而且现有语言也会发生变化。)
今天计算机的知识就了解到这里吧
每博一图
在这里插入图片描述
这个是温度转换的代码
可以从华氏度转化成摄氏度

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值