数字量和模拟量
电子电路的作用:处理信息
模拟电路:
用连续的模拟电压、电流来表示信息
数字电路:
用离散的电压序列来表示信息
理想的离散信号是不存在的。0变为1的过程是90°,这样需要的能量是无穷大的,叫做阶跃信号。所以0→1一定是有斜率的,连续的,但是我们离散的去看,去处理这个信号。
编码的目的:
因为电子电路的目的是处理信息,所以就需要把信息在电路中表示出来,这就是编码的意义。
编码是对信息的解读,根据环境不同对相同的信息,编码的方式可以不同。
例如:一个人在学校时可以用学号表示,可以用名字表示,还可以有绰号。
Q:编码为什么要保持唯一性?
A:两个信息用相同的编码表示的话,无法区分这两个信息,电路会用相同的方式处理。
· 数字电路中使用二进制对信息进行编码。二进制即逢二进一
Q:为什么数字电路中要用二进制计算。
→电路中的开关,晶体管导通/截止,电源/地等都可以用0,1来表示。
→运算规则简单,比十进制的规则(9x9乘法表等)简单很多。
→加减乘除全部都可以通过加法,移位这两种操作来实现,简化了电路结构。
Q:为什么要使用二进制的补码?
A:二进制的补码用来表示有符号的二进制数。
首先,二进制想要表示正负数的话,需要使用1bit来区分正,负数。
例如:
+5 0_0101
-5 1_0101
使用最高位作为正,负的编码。其余位数作为数值大小。
这样会出现 +5 加 -5不等于0的情况。这是因为最高位采用的不是数值编码,0,1代表是正负而不是数值。所以无法直接用来计算。
而且这样会出现正0,负0的两个相同编码,造成了编码的浪费。
为解决上述问题,引入了二进制补码的概念,用于表示二进制负数。
首先我们把最高位也赋予一个权重,-2的n-1次方。
二进制补码表示 +5 ,-5
+5 0_0101 ;因为最高位权重是负数,所以正数的最高位一定是负数。
-5 1_1011 ;-16 + 8+2+1 = -5 ;11就是-5对模数为16时的补码
'下图以时钟为例:
在5位二进制中,最大的负数就是1_0000 即-16,因为只有最高位权重是负数,其他任意位有值都会减小负值。
在5位二进制中,最大的正数就是0_1111 即15。共15个数,再加上0,一共16个数。
5位二级制无符号数能够表示 0~31共32个数
5位二级制无有符号数能够表示 -16~17共32个数
由于有1位表示了0,所以正负数的数值表示范围不对称,正数少了一个值。
总结:
→最高位是符号位(0为正,1为负)
→正数的补码和原码相同
→负数的补码=数值位逐位取反+1,加在最后一位,不区分小数
→补码最高位权重是负数
变长编码
通常我们使用的编码方式是等长编码,8421(权重码),格雷码等
变长编码是各个编码使用的Bit不同,通过统计得到各个编码出现的频率,然后对于频率高的使用较少位数来表示,以节省资源。
哈夫曼提出的二叉树编码规则就是变长编码方式。二叉树左边的都用0编码,右边的使用1编码。下图中,B就只需要1bit来编码。