计算机科学原理
时间:2023-04-05 00:37:00
参考资料:点我
顾名思义,计算机是一种用于计算的机器。一切都是数据(包括图像、视频、程序、文档等)。
在底层,计算机以二进制运行,其原理是逻辑(应属于哲学) - 布尔代数 和开关理论相互作用的而成的。
简单地说,将电路的开关状态映射到数字 0 和 1 或者说是 逻辑上的 真(True) 和 假(False)。当然,物理、化学、数学等领域的突破共同推动了计算机的诞生。
计算设备的历史
- 公认最早的计算设备是在大约公元前发明的算盘 2500 美索不达米亚年(Mesopotamia)。
- 最早使用计算机一词的文献来自 1613 年的一本书,作者 Richard Braithwait, 他指的不是机器,而是职业(负责计算的人)。
- 德国戈特弗里德的步进计算器 · 莱布尼茨尼茨 1694 年。它是第一台可以加减乘除的机器,沿用 3 个世纪。
- Charles Babbage(计算之父) 于 1822 年写了一篇名为的论文 机械在天文和计算表中的应用。他提出了一种叫做差分机的新型机械装置。 1823 差分机年初建成,项目终于放弃了。
- 根据1991年的历史学家 Charles 草稿制作了差分机。在建造差分机时,Charles 构思了一台更复杂的机器,即分析机。
- 分析机是一种通用计算机,它可以做很多事情,不仅仅是一个特定的计算,它有内存,甚至是一个非常原始的打印机。虽然当时还没有完成,但自动计算机的跨时代概念预示着计算机程序的诞生。
- 英国数学家 Ada Lovelace 给分析机写了一个假想的程序,她说: 未来将诞生一种新的、强大的、专门用于分析的语言 Ada 被认为是世界上第一个程序员。
- 美国人口普查局发现了人口分析的需要 Herman Hollerith, 他发明了打孔卡制表机。他的机器是电动机械,用传统机械计数,结构类似莱布尼茨的乘法器,但与其他部件相连
- 为满足计算需要,Hollerith 制表机公司成立后 1924 每年与其他机械制造商合并 IBM (国际商业机械公司)。
- IBM 于 1944 最大的机电计算机之一 为二战联盟国建造哈佛马克一号。这台机器最早的用途之一是给曼哈顿计划跑模拟,这台机器的大脑是机械继电器(Mechanical Relay),继电器是由电控制的机械开关(电磁即电磁铁)。但是继电器中的机械臂质量高,不能快速开关,1940 一年一度的好继电器 1 秒可翻转 50 次。另一个问题是齿轮磨损。
- 1904 年,英国物理学家 约翰·安布罗斯·弗莱明发明了电子元件叫热电子管(thermionic valve)。在密集的玻璃灯泡中安装两个电极是世界上第一个真空管(vacuum tube)。其中一个电极可以加热,从而发射电子,即热电子发射,另一个电极吸引电子,形成电龙头的电流。电流只能单向流动的电子部件称为二次管(diode)。
- 1906 李,美国发明家·德富雷斯特在两个电极之间增加了第三个控制电极。向控制电极施加正电荷允许电子流动,而负电压阻止电子流动。即三极真空管(Triode Vacuum Tube)。持续半个世纪。真空管会烧坏。20世纪40年代,它的成本和可靠性有所提高,可用于计算机,标志着计算机从机电到电子。
- 第一台大规模使用真空管的计算机是巨人1号,由 Tommy Flowers 竣工于 1943 年。用于破解纳粹通信。
- 1941 年,Alan Turing 做台机电装置叫 Bombe,用于破解纳粹英格码通信加密设备。但严格来说,它不是计算机。
- 巨人被认为是第一台可编程电子计算机。
- 电子数值积分计算机ENIAC(Electronic Numerical Integrator and Calculator)1946年,宾夕法尼亚大学建成。设计师是 John Mauchly 和 J. Presper Eckert。
- ENIAC 它是世界上第一个真正通用和可编程的电子计算机。
- 1950 真空管计算器真空管计算器达到了极限。美国空军 AN/FSQ-7 计算机于 1955年完成。是 SAGE 防空计算机系统的一部分。
- 1947 贝尔实验室科学家 John Bardeen, Walter Brattain, William Shockley晶体管的发明(transistor)。晶体管的物理学相当复杂,涉及量子力学。晶体管是固态的,远小于继电器或真空管。
- 1957 年发布的 IBM 608完全使用晶体管的电脑,消费者也可以购买。
- William Shockley 创立了肖克利半导体,里面的员工后来成立仙童半导体。
- 硅谷的员工成立后Intel:世界上最大的计算机芯片制造商。
存储单位:
中文单位 | 中文简称 | 英文单位 | 英文简称 | 进率 |
位 | 比特 | bit | b | 0.125 |
字节 | 字节 | Byte | B | 1 |
千字节 | 千字节 | KiloByte | KB | 2^10 |
兆字节 | 兆 | MegaByte | MB | 2^20 |
吉字节 | 吉 | GigaByte | GB | 2^30 |
太字节 | 太 | TeraByte | TB | 2^40 |
拍字节 | 拍 | PetaByte | PB | 2^50 |
艾字节 | 艾 | ExaByte | EB | 2^60 |
泽字节 | 泽 | ZettaByte | ZB | 2^70 |
尧字节 | 尧 | YottaByte | YB | 2^80 |
千亿字节 | 千亿字节 | BrontByte | BB | 2^90 |
亿字节 | 亿字节 | NonaByte | NB | 2^100 |
十亿字节 | 十亿字节 | DoggaByte | DB | 2^110 |
亿亿字节 | 亿亿字节 | CorydonByte | CB | 2^120 |
计算机负数用补码表示:每个取反后加一。
逻辑门:
1. 与门(and gate):
2. 或门(or gate):
3. 非门(not gate):
4. 异或门(Exclusive Or gate, XOR gate, EOR gate, ExOR gate):
5. 同或门(XNOR gate 或 equivalence gate, 也作异或非门):
6. 与非门(NAND gate):
7. 或非门(NOR gate):
异或门,同或门,与非门,或非门由三个基本逻辑门组合而成。
用与或非实现异或门: