二进制在计算机内是如何运作的

通过学习编程语言,我们都知道编译器的工作是把编程语言翻译为计算机所能识别和执行的机器语言,机器语言通过二进制代码所表示,但是,计算机为什么要使用二进制呢,0和1在计算机内又是如何工作的呢?

1. 为什么选择二进制?
这就要从计算机的基本电子元件——晶体管来说起,晶体管可以看作一种电子开关,通过控制线路来控制开和关,晶体管有两个电极,由半导体材料将它们隔开。

控制线连接到一个门,通过改变它的电荷(高低电平),来控制半导体的导电性,来决定是否让电流流动,即开与关,再通过0和1两种状态表达信息,从而达到传递信息的目的。高电平导致电路导通,通电代表‘1’,低电平导致线路不通,闭电代表‘0’。但是,为什么三进制、五进制、十进制不行呢?问题在于,可表达的数字越多,状态越多,就越难区分信号,极容易造成信号混乱,特别是对每秒数百万次变化的晶体管来说,问题更为严重。所以只有0和1两种状态,可以更好的解决这类问题。(值得注意的是,数字电路只能识别高低电平,0和1只是起标记作用,是抽象的,并不存在。)

采用二进制的另一个原因,数学界中已经有一门数学分支——布尔代数,来专门处理真(1)和假(0)这类逻辑操作问题,并且这门学科已经解决了所有法则和运算,使得二进制的问题更便于处理。布尔代数能够很好地处理集成电路中的逻辑门问题。逻辑门包括或门、与门、非门、或非门、与非门。逻辑门通过晶体管的组合和不同的逻辑关系来实现高低电位的转换。

2. 二进制在计算机内是如何工作的?
通过上一个问题,或许有些人已经明白了二进制在计算机内是如何运作的了,但或许很多人还是没明白,1和0串是符号,计算机电路怎么识别?其实所谓的编程和编译,本质上不是对0和1数字串的翻译,虽然很多书本为了让人理解这一过程而这么说的。例如输入字符‘a’,便会在i/o控制器上产生高高低低的电平,也就是我们所抽象出来的一堆0和1,而后再通过ASCII码将其转化为字符‘a’所代表的65的二进制01000001,再通过另一组i/o传给CPU。一系列的这种过程就叫编程,这些所有的电压信号都存储在相应的存储单元中,当我们要进行编译时,便通过鼠标点击编程软件的翻译栏,这个过程,看着是你点了翻译栏软件发出了命令,实际上是鼠标输出了某个电压信号发出了命令,这个电压信号触发了半导体开关,连接起了所有储存了高高低低电平的存储半导体单元。当你点击运行的时候,鼠标发出了电压信号,由信号触发启动开关,存储了高高低低电平的半导体电路元件才开始电路上的运行。我们所见到的软件等等运行也与此类似,但其实根本没有软件,软件只是抽象出来的,本质还是由硬件和电路所操纵的。

3. 补充
或许有人还是不懂晶体管和高低电压的关系,打个比方,计算机的早期是在纸带上打孔,利用光敏元件在有无光时电阻不同的特性,来实现高低电压的转换,从而决定电路的通断,也就是0、1。如果说输出是个额定电压为5v的继电器的话,如果电源是6V,光照时,光敏元件分得0.1V,继电器就可以闭合了;如果不光照,光敏分得1.2V,那继电器就无法闭合。这个继电器就可以控制其它电路的通断。成千上万个纸带在同一时间运行,便可产生不同的通断状态,从而产生我们所想要的信息。晶体管用半导体代替了继电器。

二进制在计算机内是如何运作的相关推荐

  1. 字符在计算机内二进制,在计算机内,符号采用二进制编码表示。

    请根据下面的文字材料,完成一节课的教学设计. 丝绸之路 一座古朴典雅的"丝绸之路"巨型石雕,矗立在西安市玉祥门外.那驮着彩绸的一峰峰骆驼,高鼻凹眼的西域商人,精神饱满,栩栩如生.商 ...

  2. 计算机存储数字,数字串在计算机内的表示与存储

    数字串在计算机内的表示与存储 人们习惯使用10进制数,而在计算机内,采用二进制表示和处理数据更方便.因此,在计算机输入和输出数据时,要进行十→二和二→十的进制转换处理,这是多数应用环境中的实际情况.而 ...

  3. 声音在计算机内表现形式为,声音与视频信息在计算机内的表现形式是什么

    声音与视频信息在计算机内的表现形式是二进制形式的数字.在计算机内部,指令和数据都是用二进制0和1来表示,因此,计算机系统中信息存储.处理也都是以二进制为基础的.而声音与视频信息在计算机系统中只是数据的 ...

  4. 计算机中多媒体数据什么形式存在,在计算机内多媒体数据最终是以什么形式存在的...

    在计算机内多媒体数据最终是以二进制代码存在的,因为计算机只能识别数字,这也就是计算机语言跟人类语言的不同. 二进制代码:由两个基本字符0.1组成的代码.其中,码元:"一位"二进制代 ...

  5. 音频和视频信息在计算机内的表示形式是什么,声音与视频信息在计算机内的表现形式是什么...

    声音与视频信息在计算机内的表现形式是二进制形式的数字.在计算机内部,指令和数据都是用二进制0和1来表示,因此,计算机系统中信息存储.处理也都是以二进制为基础的.而声音与视频信息在计算机系统中只是数据的 ...

  6. 计算机 二进制 中国,二进制与计算机

    二进制与计算机事物的多少或者顺序,我们可以用一种称为"数"的符号来表示.事物的数量是无穷的,我们却不可能创造无数个符号.为了解决这个难题,人们创造了进位制(又叫做位值制),这样就可 ...

  7. 科学计算机二进制算法,计算机是怎么理解二进制的?

    计算机是怎么理解二进制的? 计算机的发明最初纯粹是为了计算数字, 让一个机器能够通过输入不同的数字, 进行加减乘除等. 首先要约定好机器能处理的数是什么样的, 即输入是什么样的, 才能去制造计算机. ...

  8. 最早采用二进制的计算机,计算机 | 中国古代人最早提出的二进制思想?

    原标题:计算机 | 中国古代人最早提出的二进制思想? 二进制与计算机事物的多少或者顺序,我们可以用一种称为"数"的符号来表示.事物的数量是无穷的,我们却不可能创造无数个符号.为了解 ...

  9. 初几学的计算机二进制,说说二进制与计算机的那些事儿

    原标题:说说二进制与计算机的那些事儿 二进制与计算机事物的多少或者顺序,我们可以用一种称为"数"的符号来表示.事物的数量是无穷的,我们却不可能创造无数个符号.为了解决这个难题,人们 ...

最新文章

  1. C#泛型简化代码量示例
  2. 《软技能:代码之外的生存指南》一一21.1 为什么博客如此重要
  3. 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化
  4. Map 3D 2013中的AcMapMap.GroupModified 和AcMapMap.LayerModified 事件的参数变化
  5. c语言删增,C语言中初始、增加和删除进程信号的操作方法简介
  6. Ubuntu在vmware虚拟机无法上网的解决方法
  7. [css] 用css3实现文字发光的效果
  8. (二十)TCPIP面试宝典-进入大厂必备总结(中)
  9. 设置log缓存_node多级缓存之redis缓存
  10. yaf php源码,PHP-Yaf执行流程-源码分析
  11. ElasticSearch之高亮显示
  12. mac配置php mysql_mac配置Apache+php+mysql
  13. python 保证所有数据能够显示,而不是用省略号表示,不以科学计数显示
  14. pandas—pandas.DataFrame.query与pandas.DataFrame.reset_index
  15. Unity基础补漏(1)_GameObject类_Time类_Transform类_Camera_光面板_物理面板/物理材质_碰撞检测函数_刚体加力
  16. 2019年7-9月新发布的主流手机品牌型号参数
  17. 数据库数据模型理解 概念数据模型 逻辑数据模型 物理数据模型区别和联系
  18. Landsat 数据集合集(Landsat 5/7/8/9)
  19. Advanced Algorithm 听课笔记(Useful Inequalities Balls and Bins)
  20. 深入理解ArrayList中 toArray(),toArray(T[])方法

热门文章

  1. 计算二维紧束缚模型费米面和nesting程序新思路
  2. 大学开学初计算机水平测试,请查收这份大学生开学攻略——
  3. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解
  4. 记录关于利用txt文件划分训练集、测试集与验证集
  5. scrapy爬取昵图网图片
  6. mysql数据库重启、登录mysql数据库、通过命令执行mysql的sql脚本等命令
  7. K8s - 让Master也能当作Node使用的方法
  8. iOS开发-类似微信录音上滑取消功能
  9. 侵犯计算机软件著作权的行为,侵犯计算机软件著作权的行为有哪些?
  10. robocup3d 发布比赛版本