K-map(卡诺图)8,4,-2,-1转二进制码

K-map ( karnaugh map ) 8,4,-2,-1 to binary code conversion

我正在学习计算机科学课程并且需要一些数字设计知识,所以我正在学习数字设计 101。

上图表示使用K-map(卡诺图)将8,4,-2,-1转换为二进制的过程。

我不知道为什么 0001、0011、0010、1100、1101、1110 被标记为 'X'。

对于0001,0011,0010,可以表示为8,4,-2,-1为0111,0110,0101。 而对于 1100、1101、1110, 1110仍然可以表示为8,4,-2,-1形式的1100为1100。 休息不能用 8,4,-2,-1 表示,因为 1100 是 8,4,-2,-1 二进制形式中最大的数字(我认为)。

有没有我遗漏的东西?

我理解教科书示例中提供的 excess-3 到二进制代码的转换(m10-m15 标记为 'X',因为 excess-3 仅用于表示 0-9。)

根据BCD的定义,1个十进制数字(不是一个数字)用4位表示

因此,给定的 4 个输入只能表示 0 到 9 区间内的值

对应的完整的真相-table是这样的:

 decimal | 8  4 -2 -1 |  decimal  || BCD
 /index  | A  B  C  D |   result  || W X Y Z
----------------------------------||---------
     0   | 0  0  0  0 |     0     || 0 0 0 0 ~ 0
     1   | 0  0  0  1 |    -1     || X X X X
     2   | 0  0  1  0 |    -2     || X X X X
     3   | 0  0  1  1 |  -2-1=-3  || X X X X
     4   | 0  1  0  0 |     4     || 0 1 0 0 ~ 4
     5   | 0  1  0  1 |   4-1=3   || 0 0 1 1 ~ 3
     6   | 0  1  1  0 |   4-2=2   || 0 0 1 0 ~ 2
     7   | 0  1  1  1 |  4-2-1=1  || 0 0 0 1 ~ 1
     8   | 1  0  0  0 |     8     || 1 0 0 0 ~ 8
     9   | 1  0  0  1 |   8-1=7   || 0 1 1 1 ~ 7
    10   | 1  0  1  0 |   8-2=6   || 0 1 1 0 ~ 6
    11   | 1  0  1  1 |  8-2-1=5  || 0 1 0 1 ~ 5
    12   | 1  1  0  0 |   8+4=12  || X X X X
    13   | 1  1  0  1 | 8+4-1=11  || X X X X
    14   | 1  1  1  0 | 8+4-2=10  || X X X X
    15   | 1  1  1  1 | 8+4-2-1=9 || 1 0 0 1 ~ 9

然后 K-maps 通过其索引匹配真相-table:

使用K-maps,确实可以简化为这些布尔表达式:

W = A·B + A·¬C·¬D
X = ¬B·C + ¬B·D + B·¬C·¬D
Y = ¬C·D + C·¬D
Z = D