为什么计算机以二进制工作?

amo*_*era 16 hardware binary computer-science

我做了一些搜索,但没有找到一个真正令人满意的答案.作为开发人员,我想投入必要的时间来理解这一点,因此我正在寻找对此的完整解释,并随时提供任何有用的参考.

谢谢.

nel*_*aro 18

我会建议买这本书安德鲁·斯图尔特·塔能鲍姆.他开发了一个名为Minix的Linux前身.我使用结构化计算机组织作为我大学课程的一部分.

为什么计算机使用二进制文件不仅仅是切换上下文的问题.

相对于参考电压,例如3v.+ 1v(4v)=真或1和-1v(2v)=假或0.

它还与创建控制或逻辑电路的最有效方法有关.这与实施成本有关.与使用十进制或模拟的电路相比,构建使用二进制的电路需要多少费用才能看到这个答案.

如果比较适用于现代CPU的数十亿二进制电路晶体管.使用十进制(或模拟)系统这样做的成本会因为你现在需要添加更多控制电路而成倍增加你想要添加的每个数字.

如果您想了解一些有助于制作二进制文件的最重要的贡献组件,那么逻辑和控制电路的默认标准就是阅读并理解维基百科的以下主题.阅读最重要的主题大约需要4个小时,这些主题与用于创建电路的一些电气工程有关.

我试图在这个概念列表中完成您需要了解实际开关如何工作以及它们的使用原因.以及为什么二元算术在硬件中是如此有效的计算形式.

  • 晶体管类型了解pnp和npn晶体管类型,以了解形成开关的实际电路如何工作.这些电路制造起来非常便宜,并且可以缩小到微小(纳米)尺寸
  • 逻辑电路.如果您了解基本逻辑电路,您将了解实际晶体管类型如何用于实现它们.这些与一些编程结构有关,例如"和&&""或||" 和"如果,分支"构造.
  • DigitalCircuitry有一个完整的缺点部分,比较模拟和数字电路
  • NAND逻辑门非常重要,因为所有其他逻辑门电路都可以使用这一个逻辑门来实现.简化制造过程,因为用于创建电路的机器的复杂性可以简化.
  • 加法器电路要了解如何使用逻辑门完成基本加法.
  • Twos补充这对于理解实际CPU中的数字表示非常有帮助.在CPU中实现这种类型的算法也非常便宜,因为它需要更少的晶体管.例如,需要进行加法和减法的简单加法电路.如果你添加一个负数你会得到正确的答案,即+7 +( - 4)= +3.这也有助于理解整数溢出
  • Binary_number
  • 这些是用于控制其他电路的最常用的马戏团.这些控制何时打开和关闭电路.解码 器编码器如何(如果或分支)条件逻辑被实现.
  • 多路复用器是如何完成路由的基础.在CPU,BUS和网络中.大多数数字设备中最常见的逻辑电路之一.

现在为一些硬核的东西.C.和C++用于编写与实际硬件对话的设备驱动程序.如果您真的想了解某些设备是如何工作的,那么您的CPU和/或外部设备将学习汇编程序.您将开始了解如何通过将某个器件寄存器设置为特定值来关闭器件,逻辑电路将读取该值以更改器件状态.例如,您将理解为什么(0101)base2 = 5(二进制相关的东西)将通过电路路由特定方式来打开和关闭设备.


pes*_*taa 14

计算机可以构建为即使使用十进制数也可以工作,但从工程角度来看,仅区分两个状态要安全得多.

值1(+ 5V)的电压只是一个理论值,在实际中它总是有点不同.如果他们用小数点完成计算机,就没有办法判断+ 4.75V是9还是10.

  • +1.那更好,我一直在等待这个 - 这确实是因为容易区分电压 - 电子设备爱好者知道这是因为倾向于将"开"处理为例如3.5和5V之间以及低于1.5V.这一切都归结为实用性 - 即使是大肆吹嘘的方波也不是正方形,而只是近似值. (3认同)