这是一篇让“会做1+1=2的人”就能理解计算机工作原理的文章,至少我的目的是这样的。我是做IT的,更确切一点说,我是做计算机软件编程的,这几年发现身体慢慢发胖,偶尔熬夜就觉得心脏有点受不了,所以不想再做软件开发工作,一直也在想办法转型。现在计算机发展已经比较成熟了,好像什么都能干,不仅仅是文字,还有图片,图像,声音等多媒体,特别是手机上面直播各种各样的玩法太多了,现在计算机还用到了汽车上,都是人工智能自动驾驶,实在是太厉害了。我相信很多人都会像我最开始接触计算机那样,充满各种疑问,所以,我想以自己曾经这个程序员的角度来给大家说一说计算机是怎么做到这些的,首先说明下,文中很多模型进行了简化,实际当然要更复杂,有些表达只是为了方便理解,可能并不严谨。

一、计算

既然是计算机,那就离不开计算这个概念。我们从小就学过数学,加法、乘法、除法等等。比如1+1=2,计算机里面就有做这个加法计算的工具,只是要理解它是怎么做出来的,需要有一点点二进制的知识。为什么要用到二进制呢,因为我们电子技术里面目前能实现最快速最准确(或稳定,不容易出错)的检测电压的高低,于是人们就通过高低电压代表1,0(高电压计为1,低电压,如电压值为0计为0)两个数,但是就光这两个数是不能做我们日常生活中的10进制计算的,为了解决这个问题,就需要更多的0、1组合,来表示一个我们日常生活中的数,这一点刚好符合二进制数值的特性,比如5,转为2进制是一长串的0和1:00000101,在计算机里面假设排列8个电子元件来表达这个数值5,那就在对应位置电子元件中为1的加上高的电压,对应为0的加上低电压,如“00000101”的数值,在这8个电子元件中的电压依次是“低低低低低高低高”,这样就在计算机中表示了我们日常生活中的5了。是不是很简单呢。在计算机中,表示这串电压的元件有很多,最基础的就是CPU中的寄存器,以及我们经常听到的内存,就是存储这些高低电压的。

明白了计算机是如何通过电压高低来表示数值了,那然后计算机如何运用这些高低电压做运算的呢?前面我们说到日常生活中做5+5=10这个计算,首先我们了解一下二进制的加法,其实都跟我们日常生活中的加法差不多,日常生活中我们用的是10进制加法,每一位最大的数是9,超过9(即加满10)就往前面进1位,二进制则是加满2就需要进1位了,如10进制5+5 = 10,而二进制1+1 也是等于 10,虽然结果看起来都是10,但是在不同的规则下,这两个10的代表的数量却是不同的。好好把这个理解清楚了,我们就能计算二进制的5+5了,首先把10进制的5转换为二进制,即00000101,然后通过二进制的计算规则可以计算出如下的结果:00000101+00000101=00001010了,把这个二进制结果转为10进制表示,就是10。 知道了这一点,接下来就是把这两个二进制的5输入到计算机的元件中,使用高低电压表示:低低低低低高低高,然后通过加法逻辑电路,做到两个电压相遇,能够按照二进制的逢2进1的规则,输出相应的高低电压(读者会觉得比较神奇,是的,其实就是应用了硅这种特殊的材料,就让电路有了这样的计算特性)。比如计算二进制的0+0,则只需要在输出电路中输出0(即低)的电压即可,计算0+1,则只需要在输出电路中输出1(即高)的电压即可。遇到1+1的情况,则需要输出一个高电压和低电压表示10的情况(实际要复杂一点,但是为了方便理解,就这么表示),最后得到输出的电压就是二进制计算的结果了。

以上这些内容是比较复杂的,如果理解了的话,就能理解计算机最基本的计算原理了。这些计算都是在CPU中完成的,在CPU中,有加法逻辑计算电路,乘法逻辑计算电路,其他减法等计算都是通过加法转换得来的,具体怎么做的,可以暂时不要详细理解,只需要知道CPU通过电路可以做二进制的各种计算,映射到我们日常生活中的10进制计算即可。

二、程序

在计算机中,最常见的就是程序了,程序是处理这些数值运算的一些列过程。比如我们使用计算器的程序,我们想要计算1+1,首先程序要让我们从键盘上输入1,+,1等,当我们按下=号后,程序就会根据我们的输入,进行计算,然后在电脑上显示结果2。当然,我们日常生活中使用到的程序更加复杂,比如下文中的文字表达。

三、文字表达

通过上面的基础知识,我们知道计算机里面可以进行数学计算了,但是我们日常生活中有很多东西不是数学的,比如说文字。是的,要如何表达文字呢?计算机CPU中没有表达文字这样的结构电路,只能做数值计算,要想让计算机表示文字,就需要解决文字在计算机中如何表示,然后就是文字录入存储和显示等问题。假设有一个选择题:26个字母中,哪个字母排在最前,请选择对应的序号:1、a;2、b;3、c;4、d。很显然,我们要选择1。有没有发现,这个选择题用1代表了a。于是,通过这种代表方式,计算机科学家将现实中的每一个文字都用了一个数值来代替表示,这个过程就叫做文字编码。计算机科学家首先根据每种语言的特点,都定下了编码的规则和标准,即用不同的数值代表每一个文字符号,然后他们编写相应的程序,处理与文字相关的计算。比如,我们要表示a这个字母(采用ASCII这种编码规则,97代表a,二进制为0110 0001),计算机文字程序就会把这个97这个二进制相关的高低电压输入到CPU或者内存的存储器中,文字程序还会把计算机的数值转换为对应的文字,然后把这个文字显示到我们的显示器上,这样就完成了文字在计算机中的表达。当然,文字的显示是有多种多样的,比如字体,颜色等等,这个就有一个专门的文字显示程序了。

四、其他多媒体

如果理解了文字在计算机的表达,其他多媒体如何在计算机中表达也就好理解了。我们能够举一反三,我在这里列举几个。

图像:一张图片是由不同的颜色组成的,在我们现实生活中,图片是连续的,即如果我们用一个超级厉害的显微镜来观察这张图片,可以一直看到颜料的分子结构。但是在计算机中无法处理连续的,而且就我们日常使用来讲,也没有太大的意义。于是科学家将一张图片按小方块进行分割来表示,切割的足够细,已经让我们的肉眼察觉不到时,就基本上满足了,每一个小方格代表一个像素,显示器显示像素的时候,会把像素显示到显示器中的一个点上,平常我们经常听到显示器分辨率是1920*1080,也就是说这个显示器横向有1920个显示点,纵向有1080个显示点。像素是计算机中表示图片信息的最小单位,每个像素有一个颜色值,这个颜色值就是对应着我们切割的最小单元格的颜色值(可能有的时候这个点刚好有几个颜色,这个时候就看哪个颜色面积大了和亮了)。那么颜色在计算机中又是如何表示的呢?我们首先要知道三原色的原理(即通过对红、黄、蓝三种颜料不同比例的混合组合,可以调出任意颜色),于是计算机科学家用三个数值来分别表示某种颜色的浓度,然后这三个数值组合到一起,就形成了一种新的颜色值,图像程序可以根据这三个颜色值进行图像的处理,比如存储为图片文件,然后图片程序读取图片文件中的二进制数值,通过成千上万的像素把一张照片中的每一个点都有序的显示到显示器中,我们就能看到一张完整又清晰的照片了。

视频:视频类似于图像,理论上,只要1秒钟超过24张连续的图片依次展示在我们的眼睛里,我们就会认为是连续动态的。当然视频还有声音同时播放出来,下面就会简单说一下音频。

音频:音频是由于震动产生,我们人耳能听到特定震动频率范围内(20~20000Hz)的声音,计算机科学家需要将声音进行数值化,采取图像和视频类似的处理方式,某一个时刻的声音震动值类似于图片,连续的音频相当于视频(当然,图像和声音的还是有很多不同,不过可以根据按照这种逻辑去理解,关于声音的特点,根据人耳的听觉特征,会采取不同的方式),通过话筒等录音设备和软件,把连续的声音按照一定的间隔把这些数值记录存储下来,形成音乐文件,播放软件再把这些数值转换为相应的电信号,输出给扬声器,最终就在计算器中完成了处理。

总结:总的来说,弄明白了计算机为什么只能处理二进制数据,以及数据计算,基本上就有了理解计算机的基础,至于其他现实世界的问题处理,都是需要将现实世界里的东西进行数据化(信息化),然后就能在计算机中变魔术了。计算机是近代人类社会最重要的产物,极大的提高了我们的生产力与效率,第一台电子计算机是科学家图灵做出来的,计算机界的诺贝尔奖就是图灵奖,也是为了纪念他为人类做出的杰出贡献。如果大家觉得通过我的文章,确实理解了计算机这个东西,对他感兴趣了,我可能会再写一些文章,比如大数据人工智能之类的,算是帮助大家理解吧。

数值计算原理_计算机什么都能做,到底是怎么工作的?相关推荐

  1. python编程能有什么用_揭秘python都能做什么?

    Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. Wob开发使用Python的二个基本应用就是进行Web开发,在国内,大一些的使用P ...

  2. greenplum 存储过程_揭秘!Greenplum并行执行引擎到底是如何工作的?

    <深入浅出Greenplum内核>系列直播以每月一场的速度持续推出中.在第一场<架构解读>直播里,我们了解了Greenplum的整体架构.存储管理.索引.查询执行.事务与日志等 ...

  3. 数值计算原理_变压器差动保护的基本原理及逻辑图

    一个学技术的公众号 ID:BianDianJiShu 1.变压器差动保护的工作原理 与线路纵差保护的原理相同,都是比较被保护设备各侧电流的相位和数值的大小. 2.变压器差动保护与线路差动保护的区别: ...

  4. python 检查域名是否可以访问_糖尿病人是否都要做喝糖水的检查?结果可以说明胰岛功能水平吗?...

    作为糖尿病人你被医生做过喝糖水的检查吗?感觉如何?没有体验过的我先给大家介绍一下这个检查吧:当医生怀疑你得糖尿病,就会安排你空腹静脉抽血测血糖,然后一口气喝下含75克葡萄糖的水溶液,喝糖后的半小时.1 ...

  5. 四路组相联原理_计算机组成原理中是如何求是几路组相联映像?

    共回答了15个问题采纳率:93.3% 首先说下面的问题吧.每个块是32个字,一个字是16位,故一个块是32*16=512bit 回到第一个问题 :每组4个存储块就是4路组相联.一个组含有几个块就称为几 ...

  6. python列表生成式原理_三元表达式/和/或如何在Python中工作/真与假的性质/列表生成/生成器,and,or,执行,原理,True,False,本质,生成式...

    一看标题,看似是三个不相关的问题,实际上息息相关. 我们都知道,"C系语言(C\C++.C#.Java等)"都有一个共同的知识点:三目运算符,其主要作用还是为了简化选择结构语句.让 ...

  7. python适合找哪方面工作_学习python后能做哪方面的工作

    Python作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐.那么,Python 的应用领域有哪些呢? 概括起来,Python的应用领域主要有如下几个,这也是学完python将要从事的相 ...

  8. 动态磅是怎么原理_一看就懂的十种泵的工作原理动态图

    1.水环式真空泵动态原理图: 当水环式真空泵叶轮按图中顺时针方向旋转时,水被叶轮抛向四周,由于离心力的作用,水形成了一个决定于泵腔形状的近似于等厚度的封闭圆环. 水环的下部分内表面恰好与叶轮轮毂相切, ...

  9. 双时隙的工作原理_一文读懂跨阻放大器的工作原理

    跨阻放大器(TIA)是光学传感器(如光电二极管)的前端放大器,用于将传感器的输出电流转换为电压.跨阻放大器的概念很简单,即运算放大器(op amp)两端的反馈电阻(RF)使用欧姆定律VOUT= I × ...

最新文章

  1. Hinton:人类就是机器,绝妙的机器
  2. directadmin php.ini 修改,如何快速修改DirectAdmin面板默认2222端口
  3. sql报表按月统计_如何通过INTOUCH组态软件做EXCEL报表(含代码)
  4. python openoffice_windows下安装UNO,配置AEROO_REPORT (Openoffice4已经升级为Python2.7.5版)...
  5. linux使用总结一
  6. Java防止Xss注入json_浅谈 React 中的 XSS 攻击
  7. oracle path函数,自定义类似 sys_connect_by_path 功能的函数
  8. (转)Arcgis for js加载天地图
  9. python爬虫面试自我介绍范文_走过路过不容错过,Python爬虫面试总结
  10. Ubuntu 之旅(三)安装通讯工具
  11. 零基础学python-如何从零基础自学Python?
  12. 获取,改写style标签里面的内容
  13. Html制作简单而漂亮的登录页面-web前端教程
  14. 杜洋面包板入门电子制作学习笔记 第1集 总记
  15. 编程实现在IntAct数据集上批量查找蛋白交互对
  16. python协同过滤电影推荐的论文_协同过滤?教你用Python实现协同过滤
  17. win11锁屏壁纸不更新,且全黑的解决办法
  18. 原生javascript的账号密码登录验证
  19. 我的气垫船充满了鳗鱼
  20. VR全景拍摄如何正确的拍摄?全景摄影大赛等你来

热门文章

  1. Unity 3D 新手强烈推荐教程
  2. excel下拉框引用另一个sheet数据
  3. Matlab图形绘制(五)绘制矩阵的条形图、面积图、二维饼图
  4. 团队项目第六周——Alpha阶段项目复审
  5. Python入门基础教程_尚学堂python400集
  6. Qt中实现窗口右键菜单
  7. adb修改什么文件获取root权限_记一次获取系统文件的过程
  8. 解三元一次方程组的算法,C语言,Python,Java实现
  9. MFC之RTTI分析(基于侯俊杰的《深入浅出MFC》)
  10. 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program