国庆期间,我造了台计算机( 五 )
那此时的范围就是:
文章插图
如果你理解了上面的十进制转化 , 这个二进制肯定是没问题的 , 这其实就是算出 2 的补数 , 而 2 的补数又是 1 的补数 +1 。
我们拿 125 来举个例子 , 125 二进制表示是 01111101 , 求 1 的补数就是 11111111 - 01111101 , 这个减法在二进制中不需要 , 因为这其实就是求反 , 还记得上文提到的反向器吗?
取反了之后再加一 , 就得到 2 的补码 。
文章插图
所以 -125 就是 10000011 。
当然这一切的前提都是数字的位数需要固定 , 所以计算机中的位数就是固定的 , 超出了就会溢出 , 到这里你应该可以理解计算机中的补码是怎么来的 , 而且理解了为什么最大值 +1会变成最小值?
所以减法我们只需要改造一下上面的加法器 , 给个开关表示这个数是负数 , 如果是负数则进行一波反向器操作然后再 +1 , 之后再进行加法操作即可得到最终的结果 。
乘法和除法我就不分析了 , 一样也能通过加减法来实现 。
振荡器(时钟)、锁存器(触发器)和计数器当然这个和我们所认识的计算机还差很多 , 现在只能进行一些非常简陋的加减操作 , 别急我们先来看看这个电路 。
文章插图
这个电路很有意思 , 当你闭合开关的时候电路通了 , 此时由于电磁效应可动棒被吸了下来 , 电路就断了 , 断了之后磁性消失了可动棒又移了上去 , 这样电路又通了 , 如此往复 。
这种电路叫振荡器 , 这是一个很关键的东西 , 记住它 。
它的来回振荡其实就是在输出 0 和 1 的交替序列 , 画成图如下所示:
文章插图
随着时间的变化在 0 和 1之间交替变化 , 因此也称之为时钟 。
一个变化循环所需要的时间称之为周期 , 频率是周期的倒数 , 如果周期是 0.05 秒 , 那么频率就是 20 , 每秒 20 个循环 , 用赫兹来作其单位 , 所以就是 20 Hz 。
我们再来看下这个电路 。
文章插图
此时灯泡是不亮的 。 当上面的开关闭合后 , 左边的或非门输出 0, 右边的或非门输出是 1 , 因此灯泡亮了 。 神奇的地方来了 , 此时你断开上面的开关 , 灯泡依然是亮的 , 因为左边的或非门输出还是 0 , 而或非门只要有一个输入是 1 , 输出就是 0。
文章插图
此时如果闭合下面的开关 , 灯泡就会熄灭 , 再断开下面的开关灯泡仍旧不亮 。
文章插图
可以看到这个电路是有记忆功能的 , 你看如果你发现此时的灯泡是亮的 , 你就能推断上一次闭合的是上面的开关 , 如果此时灯泡是暗的那么上次闭合的就是下面的开关!
这种电路叫触发器 , 其实上面的开关就等于置位(set) , 下面的开关等于复位(Reset) , 所以这也叫 R-S触发器 。
不过更有用的电路应该能记住某个特定时间点的上上一个信号是 0 是 1 。
所以还需要搞个保持位 , 使得保持位关了之后 , 上下两个开关随意拨动都不影响之前保持结果(下面的图复位和置位位置和我们电路图是相反了 , 不过没影响 , 一样的) 。
文章插图
推荐阅读
- 在家请一个健身教练,要分几个步骤?
- 亚马逊在假日季期间销售了数十亿件产品,全球第三方销售增长50%
- 大一期间在学习C语言之外还想再学习一些专业知识,该如何规划
- 新三年旧三年 国庆帮老伙计的电脑再战三年
- 那么多做互联网的,为啥是阿里搞出了双十一?
- 国庆结束,我决定买特斯拉了
- 未来考研想学习人工智能,本科期间是否需要学习一下Java
- 顺丰香港一司机收派员确诊,工作期间并没有任何不适病征
- COVID-19大流行期间 全球骚扰电话呼叫量仍增长了18%
- 大三期间自学Java如何能持续提升编程能力