数制
- 位权
- 二进制 2k,八进制 8k,十六进制 16k
- 转为十进制
- Σ dk·bk
- 从十进制转换
- 除以基数,余数从下往上读
- 十六进制 ↔ 二进制
- 一位十六进制数 = 4 位二进制
- 二进制补码
- 按位取反后加 1
公式表、每个专题的关键方法步骤和 6 道练习题,完整解答附在最后。
把 −14 写成 8 位补码模式。再把该模式当作无符号二进制数读出:它的十进制值 U 是多少?
把各位设置为 1101 1100 << 2 的 8 位结果。该结果的十进制值 R 是多少?
在这个卡诺图中,恰有一个 1 没有相邻的 1,所以它在最简 SOP 形式中仍是单个格子的圈(含四个文字的完整最小项)。跨越卡诺图边界的相邻关系也要计入。点选该格子。
求 F(A, B, C, D) = Σm(1, 3, 7, 11, 14) + d(2, 9) 的最简 SOP 形式,其中 d 表示无关项。它包含多少个文字 L?
一条 UART 以 38400 波特、8E2 格式发送字节:8 个数据位、一个偶校验位和 2 个停止位,外加起始位。求它每秒最多能传输多少个数据字节。
一个时钟为 32 MHz 的微控制器把其 UART 波特率设为 fclk/(16·D),其中 D 是四舍五入到最接近值的整数。目标是 38400 波特。求实际波特率的百分比误差(偏快时为正)。
答案: U = 242
位置计数制:每个数位的值等于该数字乘以基数的某次幂。二进制各位的权为 1、2、4、8、16、……;十六进制为 1、16、256、……,A–F 代表 10–15。在 8 位补码中,最左边一位的权是 −128 而不是 +128,负数就是这样存储的。
答案: R = 112
设置比特位:每一位对应 2 的一个幂(128、64、…、1)。一个十六进制数字恰好是四位,在 8 位补码中最左边的位权重为 −128。按位运算对每个位位置分别进行。
左移 2 位,把每一位向左移动 2 个位置;从左端移出的位丢失,右侧补入 0。
答案: AB = 01, CD = 10
卡诺图:各格按格雷码(00, 01, 11, 10)排列,所以相邻的格子(包括跨越边界的格子)恰好只有一个变量不同。把 1 圈成由 1、2、4、8 或 16 个格子组成的矩形,圈尽可能大、尽可能少,直到每个 1 都被覆盖。每个圈对应一个乘积项:圈内保持不变的变量。由 2ᵏ 个格子组成的圈会消去 k 个变量。无关项 (X) 可用来使圈变大,但不必被覆盖。改为圈 0 则得到最简 POS 形式。
有相邻 1 的 1 可以加入由两个或更多格子组成的圈。
答案: L = 9
卡诺图:各格按格雷码(00, 01, 11, 10)排列,所以相邻的格子(包括跨越边界的格子)恰好只有一个变量不同。把 1 圈成由 1、2、4、8 或 16 个格子组成的矩形,圈尽可能大、尽可能少,直到每个 1 都被覆盖。每个圈对应一个乘积项:圈内保持不变的变量。由 2ᵏ 个格子组成的圈会消去 k 个变量。无关项 (X) 可用来使圈变大,但不必被覆盖。改为圈 0 则得到最简 POS 形式。
由 1 和 X 能够构成的最大的圈。
答案: RB = 3200 B/s
UART:异步串行链路把每个字节作为一帧发送:一个起始位(低电平)、若干数据位、一个可选的校验位以及一个或两个停止位(高电平)。波特率是每秒的位数,所以一位持续 Tb = 1/波特率,n 位的一帧持续 n/波特率。常见的 8N1 格式每个字节占 10 位。波特率发生器对时钟分频:波特率 = fclk/(16·D),其中 D 为整数,因此实际波特率与目标值略有差别;误差在约 2 % 以内通常可以接受。
答案: e = 0.1603 %
UART:异步串行链路把每个字节作为一帧发送:一个起始位(低电平)、若干数据位、一个可选的校验位以及一个或两个停止位(高电平)。波特率是每秒的位数,所以一位持续 Tb = 1/波特率,n 位的一帧持续 n/波特率。常见的 8N1 格式每个字节占 10 位。波特率发生器对时钟分频:波特率 = fclk/(16·D),其中 D 为整数,因此实际波特率与目标值略有差别;误差在约 2 % 以内通常可以接受。
误差低于约 2 % 通常可以接受。
ExamProblems · examproblems.com/courses/digital-electronics