一、二进制
(1)文字表述
二进制数只能取0,1两个数字,逢二进一。
通过二进制表达文字。如战争时代的电报。
通过电灯泡的亮灭传递出信息。可以对灯亮和灯灭富裕一些含义,就能传达出想要的消息。
这就是编码和解码两个过程。
如果有1位二进制数,可以有0和1两种取值。如果有2位,就有00,01,10,11四种取值。同理,如果有3位就有8种不同的取值。如果有n位二进制数,就有2的n次幂种取值结果。而在计算机中我们称数位为bite。
摩尔斯电码不仅对灯泡的亮灭结果进行编码,还加入了时序。
为了统一编码标准,ASCII编码应运而生。
(2)图像表示
01值对应每个格子的颜色。
图片像素化
现实中的图片是连续的,但如果想用数字表示图像,就需要将一张完整的图像,横纵向分别切成很多份,从而拆成一个一个像素点,每个像素点是一个色块,而横纵切分的份数,我们称之为分辨率。例如,我们将一张4比3比例的图像,横向拆成800份,纵向拆成600份,那么我们就将一个图像拆成了480000个像素,而这张图像的分辨率为800x600。由此可见,图像的分辨率越高,图像就越清晰。
像素数字化
每个像素就是一个颜色块。具体的颜色,可以用红绿蓝三原色调配成。而每种原色,就可以用一个数字表示其深浅。例如,我们用一个字节(0-255)表示一种颜色的深浅,那么一个像素点就可以用三个字节表示。颜色的深浅是连续的,用0-255这种级别如果不够精确,我们可以选择用两个字节表示一个颜色(0-65535)。像素的深浅级别我们称为“位深”,例如0-255为8位深,0-65535是16位深。位深越大,颜色切分越连续,越不容易出现色阶。现今网络上的图像一般都是32位深。
(3)表达声音
采样
声音来自于物体的振动,是一种连续的波形。我们如果想用数字表达声音,还是要将其离散化。首先我们将一段时间(例如1秒钟)的连续声波分成很多份,并将每一份记录一个平均振幅。拆分的份数,我们称之为采样率。拆分过程中必然会产生信息丢失,而采样率越大,信息丢失越少。目前比较常用的采样率是44100HZ或者48000HZ。
量化
每个采样我们还要用一个数字表示它的高度(振幅),这又是一个连续量离散化的过程,跟图像的颜色深浅类似,我们也可以用0-255或者0-65535表示振幅的高度。这个数字的取值范围叫做声音的位深。目前通用的位深一般是16bit或者24bit。
(4)表达视频
视频就是连续的图片和声音。当然,如果只是耿直地将图片拼接到一起,那么视频的体积会非常大。实际上视频是通过一种有损压缩将很多图片压缩在一起。目前比较流行的视频编码标准为H.264、H.265、AV1。
二、仿真电路软件的安装
官方网站:GitHub - hneemann/Digital: A digital logic designer and circuit simulator.
最新版下载地址:https://github.com/hneemann/Digital/releases/download/v0.30/Digital.zip
该软件运行需要Java环境,下载地址为:https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.msi
jdk直接双击即可,一步安装。win+r,输入cmd,输入Java -version,出现版本号则安装成功。
(1)基础逻辑门电路
基础逻辑电路重点掌握表述该逻辑的四种方式:逻辑表达式、真值表、逻辑符号、口诀。
《1》非门
输入与输出相反
如果用mos管,做到低电平的时候导通,需要用到p沟道。
《2》与门
下拉电阻的作用,要输出是低电平,需要用到下拉电阻。
(2)其他门电路
与或非三门我们一般称之为基础门电路,而其他门电路可以用这三种门电路组合得到。下面我们给出一些门电路真值表以及用与或非三门的组合实现。(这些实现并非最简实现,我们的这门数字电路基础,更多只考虑可行性,不考虑优化)
《1》异或门
相同为0,不同为1.可通过仿真电路软件,以真值表自动生成电路。
《2》与非门
《3》或非门
《4》异或非门
(3)掌握门符号
三、运算器
1.半加器
现在我们来考虑如何用电路来实现1位加法。假如有两个1位二进制数A、B,它们的和为1位二进制数S,那么存在如下枚举:
- 如果A=0,B=0,那么S=0;
- 如果A=1,B=0,那么S=1;
- 如果A=0,B=1,那么S=1;
- 如果A=1,B=1,那么S=0,而且产生一个进位C=1。
也就是说,对于加法运算,应该两个输入A和B,两个输出S和C,S表示和,C表示是否产生进位,也就是说真值表如下图所示:
A、B、S是异或关系。A B C是与的关系。如此输入输出可得电路图:
2.保存1位半加器到自定义库
在仿真软件内,点开文件栏,点击保存或者另存。存入的文件夹为安装包内的lib文件。创建一个wow文件夹。将做好的电路存进wow文件夹。之后在自定义库中就能使用封装好的电路了。
3.用1位半加器造1位全加器
保存方法和半加器一样。