zoukankan      html  css  js  c++  java
  • 软件是如何控制硬件的?

    软件的本质是代码和数据,代码和数据最终都是以二进制的形式存储,二进制就是01011101101001010这种数字串,为什么二进制串就能控制硬件呢?

    看了知乎的一个答案我也有了自己的一点想法。

    其实一直就没有二进制这种东西,机器也不知道二进制这种东西,它也识别不了,机器只能“识别”电压的高低,高电压的时候某个开关开了或者关了,低电压的时候另外一个开关开了或者关了,这就导致某个灯亮了,某个灯灭了,把电脑的显示器想象为很多个LED灯,最终呈现出来的效果可能就是屏幕上出现了一个字,一个动画。我们按一下键盘或者点击一下鼠标,实际上是给机器发出了一串电压信号。硬盘里面存储的一部电影,存储的其实不是二进制,而是电压信号,因为内存里面有锁存器这种东西,意思貌似是可以让某个存储单元固定在某个电压值。总之,我们输入的是电压,机器处理的也是电压,输出的也是电压,没有二进制的事情。

    那为什么很多人都说机器能识别二进制呢? 我个人觉得二进制这种东西是一种理论,用来认识机器理解机器提出的一种理论,这就像是我们用科学来解释世界一样。

    你说你今天编写了一个程序,并把它保存在硬盘中,其实你是把一堆电压值保存在了硬盘中,运行的时候,其实是把硬盘中的那一堆电压值拷贝到内存中,然后内存中就有了一堆电压值,

    CPU读取到了一堆电压值,然后解码这堆电压值(即:某某电压值该干什么事情),输出结果也是一堆电压值,显示器获得了这群电压值,然后显示器根据这群电压值改变LED灯的状态,如果你就看到效果了。

  • 相关阅读:
    java EL表达式中${param.name}详细
    javascript中常用坐标属性offset、scroll、client
    Oralce if ..elsif结构
    VS2013 字符串函数与VC不兼容问题解决方法
    Directory Instruction
    Timestamp
    GetCurrentTime() and CFile option
    MessageBox 参数说明
    单片机红外线接收算法
    IAR for MPS430 V7.12.1 编程规范
  • 原文地址:https://www.cnblogs.com/yfish/p/7928137.html
Copyright © 2011-2022 走看看