数与计算机
数的进制
- 进制分类
- 二进制:计数符号(01)
- 十进制:计数符号(0123456789)
- 八进制:计数符号(01234567)
- 十六进制:计数符号(0123456789ABCDEF)
- 进制转换
- 十进制与二进制
- 十进制与八进制
- 二进制与八进制
- 十进制与十六进制
- 二进制与十六进制
计算机数的计数进制
计算机采用的二进制计数格式的原理
原因一:
最优解的进制应该是最接近自然常数e约等于3,理论上三进制的计算和存储的效率最高。但是三进制在物理层面上没有二进制容易实现,在物理层面上实现三种状态的元器件与两种状态的元器件相比,实现两种状态的元器件制造简单同时可靠性更高(在物理元器件中有电压就是1无电压就是0),所以采用二进制
原因二:
数在计算机中通常是二进制存储计算的,为什么使用二进制就要先回到图灵机计算模型探知,因为如果图灵机中使用的十进制十六进制或是其他不是二进制的计数格式,那么图灵机在执行过程中通过状态码和数据来确定执行指令的搜索空间也变大的了,所以采用非二进制的数据的图灵机程序指令执行效率不高。
- 计数格式符号(字母表)越多,图灵机读写带的读写次数越少,但是程序的指令语句数量越多,搜索指令空间约大
- 计数格式符号(字母表)越少,图灵机读写带的读写次数越多,但是程序的指令语句数量越少,搜索指令空间约小
小结:
依据上面的两个原因最终平衡的思想方案是二进制,所以目前的计算机基于当前的工艺水平都使用的二进制计数法,而量子计算机已经不属于这个范畴了随着工艺的提升未来的计算机是否使用二进制尚不明确。
布尔代数
定义:1854年布尔创立了布尔代数,为计算机的开关电路设计提供了数学方法和逻辑理论基础,布尔代数是属于逻辑运算的运算法则的范畴
基本逻辑运算
名称 | 定义 | 运算符号 | 表达式 |
---|---|---|---|
与 | (and)(&) | F=A & B | |
或 | (or)(|) | ||
非 | (not)(!) |
复合逻辑运算,复合逻辑运算是在基本逻辑运算基础上构建和发展出来的
名称 | 定义 | 运算符号 | 表达式 |
---|---|---|---|
同或 | |||
异或 | (^) | ||
与非 | |||
或非 | |||
与或非 |
真值表:
运算符 | 运算逻辑 | A | B | 真值F | 表达式 |
---|---|---|---|---|---|
& | 与 | 1 | 1 | 1 | 1 & 1 = 1 |
& | 与 | 1 | 0 | 0 | 1 & 0 = 1 |
& | 与 | 0 | 1 | 0 | 0 & 1 = 1 |
引用
- https://baike.baidu.com/item/%E5%B8%83%E5%B0%94%E4%BB%A3%E6%95%B0
二进制数的布尔逻辑运算原理
布尔代数和二进制的计算关系:
二进制的计算逻辑是依据布尔代数逻辑实现的。 or 用布尔代数作为二进制数的运算逻辑。
用布尔代数逻辑对二进制数进行的运算叫做二进制布尔运算
二进制的计算原理:
计算机中所有的计算都是加法运算
- 半加器,本位是两个二进制数的异或运算而进位是与运算。计算本位是逻辑异或运算而进位是逻辑与运算
- 全加器,多个半加器串联组合的
布尔代数二进制计算(加法)如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sHX0BYcd-1633977081525)(./images/二进制数的布尔代数逻辑的加法运算图示.jpg)]
整数的运算在计算机中会以补码的形式进行计算,因为补码的二进制是可以同异或逻辑运算比较便捷–《计算机科学概论p34》
物理上数的计算逻辑原理
计算机是用物理逻辑电路或机械等其他方式来实现布尔代数逻辑,进而让电路或机械具有计算二进制数的能力。所以计算机电子元器件就具有计算的能力。
用逻辑电路实现布尔代数的计算机是现代电子计算机,用机械实现计算的是机械计算机
香农在1938年的硕士论文《继电器和开关电路的分析》中,指出并分析:布尔代数可以由电路实现。
总结
- 二进制是当前计算机最合适的计数法
- 布尔代数是二进制的运算逻辑
- 逻辑电路可以实现布尔代数逻辑,所以逻辑电路具有计算的能力。
参考
- https://baike.baidu.com/item/%E9%80%BB%E8%BE%91%E7%94%B5%E8%B7%AF
- https://baike.baidu.com/item/%E9%80%BB%E8%BE%91%E9%97%A8%E7%94%B5%E8%B7%AF
拓展
- https://blog.csdn.net/zhong_ethan/article/details/102937434
练习
- 用代码实现一个布尔代数加法器