内容来源:数电教材第一章 + STC8A8K64D4 手册,全部图表重绘 用途:数制与逻辑门速查卡片
一、数制对照表

三个要点:
- 十六进制是二进制的速记法:16 = 2⁴,一位十六进制恰好对应四位二进制——8/16/32 位二进制整齐地写成 2/4/8 位十六进制,书写程序十分简便
- 两个关键行:十进制 8 → 八进制 10(逢八进位,没有 8 这个数字);十进制 10 → 十六进制 A(从 10 开始用字母 A~F)
- 最大值公式:n 位 b 进制的最大值 = bⁿ − 1。1111B = 15、7777O = 4095、FFFFH = 65535——嵌入式里 0xFF(8位满量程)、0xFFF(12位ADC满量程)、0xFFFF(16位上限)全是这一族
二、奇偶校验码
数据在存取、运算和传送过程中难免出错(1 错成 0、0 错成 1)。奇偶校验码 = 信息位 + 1 位校验位,让整个码字中 1 的个数凑成奇数(奇校验)或偶数(偶校验)。
- 能抓:任何 1 位翻转(1 的个数 ±1,奇偶性破坏立刻露馅)
- 抓不住:同时翻 2 位(个数 ±2 或不变,奇偶性完好——天生盲区)
嵌入式对应:串口配置里的 UART_PARITY_EVEN / ODD / NONE 就是它。代价是每字节多 1 位(12.5% 开销),且只能发现不能纠正,所以正经链路升级用 CRC。
三、三种基本逻辑运算

真值表不用死记:与 = 乘法(0 乘啥都 0)、或 = 加法(但 1+1=1)、非 = 取反。
对应 C 语言的位操作:
- 置位:
P1 |= 0x10(或) - 清位:
P1 &= ~0x20(与 + 非) - 取反:
P1 = ~P1(非)
四、组合门:与非、或非、与或非

- 与非门是万能门:只用与非门一种就能拼出全部逻辑(非 = 与非(A,A);或 = 与非(A′,B′))。74LS00(四与非门)曾是地球上产量最大的芯片,NAND Flash 之名即源于此
- 德摩根律:(A·B)′ = A′ + B′——与非门输出端的小圆圈挪到输入端就变成或门。圆圈可以在输入/输出之间"漂移",这是看懂和化简逻辑电路图的核心技巧
- 与或非:Y = (A·B + C·D)′,16 行真值表仅 7 行为 0(AB=11 或 CD=11 时)。典型用途:地址译码、比较器(74HC51)
五、异或与同或

异或(不同为 1)是比较器,同或(相同为 1)是相等判断器,两者互为取反。
异或的四个神技(嵌入式天天用):
- 翻转位:
P1 ^= 0x01——按一下翻一次 - 求奇偶:把数据位全部异或 = 偶校验位(奇偶校验本质上就是异或数奇偶)
- 免临时变量交换:
a^=b; b^=a; a^=b;(因为 A⊕A=0、A⊕0=A) - 半加器:A⊕B = 不带进位的和,A·B = 进位——CPU 加法器的地基
状态监测经典用法:changed = new ^ old——一行异或,变了的位全亮出来。
六、一页总览
| 运算 | 公式 | 口诀 | C 语言 |
|---|---|---|---|
| 与 | Y = A·B | 全 1 才 1 | a & b |
| 或 | Y = A+B | 有 1 就 1 | a \| b |
| 非 | Y = A′ | 0 变 1 | ~a |
| 与非 | Y = (A·B)′ | 有 0 出 1,全 1 才 0 | !(a & b) |
| 或非 | Y = (A+B)′ | 全 0 出 1,有 1 就 0 | !(a \| b) |
| 与或非 | Y = (A·B+C·D)′ | 任一组全 1 则 0 | !((a&&b)\|\|(c&&d)) |
| 异或 | Y = A⊕B | 不同为 1 | a ^ b |
| 同或 | Y = A⊙B | 相同为 1 | !(a ^ b) |
一句话收尾:与或非是地基,与非是万能砖,异或是比较器——八种运算,一张表带走。