Fork me on GitHub
摘要: 人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么? 为什么计算机里我们最终要选择二进制呢? 来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二进制。 1 怎么做到“千里传书” 马拉松的故事相信你听说过。公元前490年,在雅典附近的马拉松海边, 阅读全文
posted @ 2019-08-18 22:34 公众号-JavaEdge 阅读(607) 评论(0) 推荐(0)
摘要: 程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 各种计算机指令 数据结构 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二进制表示的 存储在内存里面的字符串、整数、浮点数也都是用二进制表示的 万物在计算机里都是0和1,搞清楚各种数据在二进 阅读全文
posted @ 2019-08-18 18:04 公众号-JavaEdge 阅读(914) 评论(0) 推荐(1)
摘要: 把对应的不同文件内的代码段,合并到一起,成为最后的可执行文件 链接的方式,让我们在写代码的时候做到了“复用”。 同样的功能代码只要写一次,然后提供给很多不同的程序进行链接就行了。 “链接”其实有点儿像我们日常生活中的 标准化、模块化 生产。 有一个可以生产标准螺帽的生产线,就可生产很多不同的螺帽。 阅读全文
posted @ 2019-08-18 02:26 公众号-JavaEdge 阅读(745) 评论(0) 推荐(2)
摘要: 比尔·盖茨在上世纪80年代说的“640K ought to be enough for anyone” 也就是“640K内存对哪个人来说都够用了” 那个年代,微软开发的还是DOS操作系统,程序员们还在绞尽脑汁,想要用好这极为有限的640K内存 而现在,我手头的Mac Book Pro已经是16G内存 阅读全文
posted @ 2019-08-17 22:18 公众号-JavaEdge 阅读(1047) 评论(0) 推荐(0)
摘要: 既然程序最终都被变成了一条条机器码去执行,那为什么同一个程序,在同一台计算机上,在Linux下可以运行,而在Windows下却不行呢? 反过来,Windows上的程序在Linux上也是一样不能执行的 可是我们的CPU并没有换掉,它应该可以识别同样的指令呀!!! 如果你和我有同样的疑问,那这一节,我们 阅读全文
posted @ 2019-08-16 00:29 公众号-JavaEdge 阅读(1005) 评论(0) 推荐(2)
摘要: 用Google搜异常信息,肯定都访问过 "Stack Overflow网站" 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面函数间的相互调用是怎么实现的,以及什么情况下会发生栈溢出 1 栈的意义 先看一个简单的C程序 阅读全文
posted @ 2019-08-15 23:07 公众号-JavaEdge 阅读(814) 评论(1) 推荐(2)
摘要: CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if…else、for这样的条件和循环存在,这些指令也不会一路平直执行下去。 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CPU如何执行指令 CPU里差不多几百亿个晶体管 实际上,一条条计算机指令执行起来非常复杂 好在CPU在 阅读全文
posted @ 2019-08-14 00:48 公众号-JavaEdge 阅读(951) 评论(0) 推荐(1)
摘要: 在上一篇中,我们谈到过 要提升计算机的性能,可以从上面这三方面着手。 通过指令数/CPI,好像都太难了。 因此工程师们,就在CPU上多放晶体管,不断提升CPU的时钟频率,让CPU更快,程序的执行时间就会缩短。 从1978年Intel发布的8086 CPU开始,计算机的主频从5MHz开始,不断攀升 1 阅读全文
posted @ 2019-08-11 21:36 公众号-JavaEdge 阅读(1058) 评论(0) 推荐(2)
摘要: 0 学习路线的知识点概括 学习计算机组成原理,就是学习计算机是如何协调运行的 计算机组成原理的英文叫Computer Organization Organization 意"组织机构"。 该组织机构能够进行各种计算、控制、读取输入,进行输出,达成各种强大的功能。 把整个计算机组成原理的知识点拆分成了 阅读全文
posted @ 2019-08-10 19:31 公众号-JavaEdge 阅读(1229) 评论(0) 推荐(0)
摘要: 1 计算机的基本硬件组成 早期,DIY一台计算机,要先有三大件 CPU 内存 主板 1.1 CPU 计算机最重要的核心配件,中央处理器(Central Processing Unit)。 计算机的所有“计算”都是由CPU来进行的。 CPU是一个超级精细的印刷电路版 1.2 内存(Memory) 你撰 阅读全文
posted @ 2019-08-09 02:05 公众号-JavaEdge 阅读(1917) 评论(0) 推荐(2)