《编码的奥秘》读书笔记

本想花三天的时间,把编码奥秘读一遍,实际上已经过去5天了,还没有读完这本书;写读书笔记的目的,不在于传播,而仅在与记录自己收获到了什么。

文章目录


从引人读下去的电筒的奥秘,以及信息的表达形式的简化,引入了摩尔斯电码,进而讲述了布莱叶盲文与二元编码,再次回到电筒的组成原理,讲述了电的一些简单概念,开关的闭合,电阻的性质;然后再次引入电流,可以代表光的直线传播进而传递信息,讲述了电报机的发展历史,以及电磁继电器的巧妙作用。到这里,可以通过电的开关性质,记录下传递的摩尔斯电码,并通过中继站的继电器自动的进行放大电信号,得以实现远距离传播。接下来,作者重点介绍了数字,从阿拉伯数字的伟大的0,以及10进制中的位的概念,开始了数字的转换与表达。再接下来,介绍了布尔逻辑,然后简化了电路的,节省了开关;然后引入了逻辑门的概念,以及逻辑门的电路实现。从几个继电器,开关,组合成一个逻辑门的整体;

全加器

简单的逻辑门有如下这些
 与门
 或门
 与非门
 或非门
 反向器
 缓冲器 -电磁继电器用于电报中的原因;
然后作者开始去设计一个二进制加法器
 1,二进制的进位
  只有两个都为1才为1,那么一个与门可以表示 进位操作
 2,然后是本身的数的操作,两个不同则为1,两个相同则为0;
  与非门-1则为0
  或门-有个1则为1
  与门–都为1则为1
异或门的电路
一个或门的输出,加上一个与非门的输出,作为与门的输入,可以构成本位的输出,这样的门就是异或门。一个与门+ 异或门 可以作为一个半加器;半加器的一个输出是和,一个输出是进位;同时,这两个1位的二进制相加时,可能也有一个前一位的进位输入;首先,a b 经过半加器,得到和输出,与进位输出;和输出作为另一个半加器的输入,与上一位的进 位输入进行加法,和输出与进位输出;进位输出与 ab 的进位输出不可能同为1,则一个或门就足够表示 是否要进位。故两个半加器,加一个或门,就足够构成一个全加器;
半加器的电路图

全加器
这种进位方式,称为行波进位的电路;这种电路的方式比较慢,实际中采用先行进位的电路,但是需要更多的继电器;
而实际上现在也不再使用继电器,而是使用晶体管;但原理是一致的,只是使用晶体管的方式构建出对应的逻辑门;

不借位减法

对于十进制的减法,例如 8123-3451,可以用如下表达式计算
  9999-3451 + 8123 -10000 + 1 = 6548 + 8123 - 10000 + 1 = 14671 + 1-10000 = 4672
而对于 3451-8123
  9999-8123+3451+1-10000 = 1876+3451+1 -10000 = 5327-9999= -(9999-5327)= -4672
对于二级制而言1100 - 1011
  1111-1011+1100-10000+1 = 100 + 1100 - 10000 + 1 = 10000 - 10000 + 1 = 1
对于二进制而言 1011-1100
  1111-1100+1011-10000+1 = 11+1011-10000+1 = 1110-10000+1 = 1110-1111= -(1)
异或门的特点就是,当一个输入是0时,输出永远是另一个输入;所以,反向器+异或门可以构成一个求反器;

额外再进入,二进制的负数表示形式;
补数的概念:十进制数32的9的补数,就是99-32 =67,其中67称为32的9的补数;而32的10的补数是100-32 = 68,就是9的补数在+1;

对于二级制数 110 的1的补数就是 111-110 = 1;其中1称为 110 的1的补数;所以1的补数有时候也称为相反数或者反码;而110的2补数就是 1补数+1,1000-110 = 111-110 + 1 = 1+1 = 10;
而010的2的补数就是 1000-010 =111-010+1 = 101+1 = 110;不过我们人为规定,正数的补数符号为0,负数的补数符号为1;而010的是正数,其2的补数就是依然是它本身;

以byte 类型为例,最小的正数是 0000 0000,最大的正数是 0111 1111B = 127(10)
而 -1(10)的二进制表示方法 则是 1111 1111 (二进制补码表示)
将 1111 1111 转为1的补数就是 0000 0000 ,而 2的补数就是1的补数+ 1;则就是 0000 0001;是十进制的 1;我们知道负数的补码的表示为1,则可知 1111 1111 是十进制 -1 的补码表示形式

理解上述数字,就是最大的正数+ 1,则是最小的负数,最大的负数+ 1,则成为正数

我们人为规定 ,负数用补码表示;即当遇到一个2进制数时,如果它的符号位是1,则知道他是一个负数的表示形式,他的绝对值就是 该二进制数的2的补数,就是1的补数+ 1;就是 取反+1;
所以当 int 值 128转为byte时,看到的二进制数是 1000 0000 ;我们认为这是一个负数的表示方式,对应的补码是 1000 0000,即是 -128;
当int值的 129的 1000 0001,转为byte时我们认为这是一个负数,对应的补码是 0111 1111 = 127(D);
即 int的129转为byte时,我们认为是 -127
当int值得 255 = 1111 1111 ,转为 byte时,我们认为是一个负数,对应的补码是 0000 0001,我们认为这是 -1 ;

求补器

综上所述,现在的加/减法器的电路图是这样的
加/减法器
只有减法才产生负数,sub = 1 时,表示的是减,而负数的溢出时,表示值是负数,且是2的补数形式;
故再进行减法的溢出时,也可以表达出计算结果了;

反馈与触发器

输入会产生输出,而输出又会影响输入,就是反馈;

振荡器

振荡器
开关闭合后的振荡器,就是始终工作的反向器;简图如下

振荡器电路简图
振荡器大有作用,在于他能提供周而复始的电流;

触发器

当两个开关都断开时,电路有两个稳定状态,这样的一个电路成为触发器;
触发器
触发器的最厉害之处,在于他具有记忆功能。类似于跷跷板,跷跷板不会始终处于平衡状态,要么一端高要么一端低;当等处于亮的状态时,我们知道是左边的或非门处于闭合状态上一次处于闭合状态;而当灯处于灭时,我们知道是右边的或非门处于闭合的状态;

R-S触发器

其中 set 端使 Q输出 1;reset 端使 Q输出0;Q与 q非 取反;
R-S触发器
r-s 触发器有这些特点;
11禁止,00 没有意义
r-s 触发器的简图
R-S触发器简图

电平触发的D型触发器

D型触发器
保持位为1时,使得q保持数据端的值;当 保持为0时,数据端任何输入都不影响电路的运转,仍然是上一次保持位为1的时候的状态;
通常情况下,保持位不会标记为保持位,而是叫时钟;当然这个信号并不是真的时钟,只是可以在0-1之间来回变动;这个电路又成为D型锁存器;也可以成为1位存储器;

边沿触发的D型触发器

边沿触发的D型触发器
只有时钟信号从0-1时,输出端Q才保存数据段的值;当时钟信号为1时,输入端的值也不会影响到q的值;

边沿触发的D型触发器的简图

边沿触发的电容器简图

分频器

分频器

计数器

一个分频器的Q非输出可以是另一个分频器的时钟输入;
串联起来的分频器
clk 反相器的输出是周而复始的01,而Q1则是只有clk在由0-1的正跳中,才输出D端的值,进而Q1非的输出作为下一个分频器的时钟输入;

上图输出
把8个触发器链接在一起,封装到一个盒子里,可以得到一个8位的计数器;这个计数器成为8位行波(异步)计数器

8位行波(异步)计数器

![8位行波计数器![](https://img-blog.csdnimg.cn/82d1378cc6374334a3a160abefb9a25d.png)

具有预置与清零作用的边沿性D型触发器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值