编程|接地气系列:认识计算机(6):认识循环,编译,汇编

编程|接地气系列:认识计算机(6):认识循环,编译,汇编

文章图片

编程|接地气系列:认识计算机(6):认识循环,编译,汇编

文章图片

编程|接地气系列:认识计算机(6):认识循环,编译,汇编

文章图片

编程|接地气系列:认识计算机(6):认识循环,编译,汇编

前几篇说过了 , 计算机强在速度非常非常非常快 , 逻辑很差 , 没有真正的小数 , 也没有真正的随机数 。 有人没看 , 也有兴趣的 , 可以翻本人发的认识计算机系列 , 本篇是第六篇了 , 本篇认识循环的概念 。

为啥说循环?因为计算机的优势是速度快 , 那就发挥计算机速度快的优势 , 跑计算 。 比如我举个例子 , 著名的1+2+3+......100加法 , 就是从1加到100 , 高斯用101 X 50的数学办法就轻易解决了 。 但是计算机的速度快不用数学算法优势直接一个个加就行了 , 有多快呢?比如某宝售价299元的赛扬G5900处理器 , 主频3.4GHZ , 就是一秒钟可以通断内部电路 , 或者说最快运行34亿次 。 人的脑袋没这个速度 。
For循环是所有学编程的人 , 他们接触的第一个感受计算机速度的程序 。 以C语言为例 , 就是如下图了 。

for 。。。 end循环 , 其实就是一个很好的例子 。 在没有到达end停止位置时 , for是一直在工作的 。 从1+到100 , for循环了100次 , 一直到找到停止位为止 , 停止位就是i的值等于100 。 否则for循环就一直进行下去 。 实际上 , 编程中 , 除非高手或菜鸟 , for循环能不用就不用 , 因为逻辑长了代码多了 , 循环停止不了 。 还有死循环问题 , 也是很难避免发生的 。
你把for循环停止的条件改一下 , 比如100改成1万 , 试一下速度 , 也是0点几秒完成 。 然后 , 考虑一下非常大的程序 , 比如一次调用500个函数那种 , 你想一下循环的速度 , 就理解了为啥高斯数学法的优势了 , 节省算力 。 所以不是计算机牛逼 , 是人厉害 , 人的脑子可以让计算机千变万化 , 比如你 , 比如我 。

For循环的本质呢 , 用下图表示一下 , 都是举例子 , 乱画的 , 原理基础不会错 , 理解就好了 。 只要理解 , 以后的编程就非常容易有这个循环不停的思维 。 只要记住 , 直流电是单方向的 。

那 , 循环跟汇编有啥关系?
因为计算机完全看不懂C语言代码 。 你写的编程代码就是人类能看懂的逻辑 , 计算机只认识0101二进制 。 上古时代 , 计算机编程真的是人工二进制编写的 , 比如阿波罗登月计划的手工针织计算机 , 就是二进制编的 。

其实 , 这种纯二进制打纸片 , 然后手工编织(后来称为编译就是这个原因)的机械计算机 , 在人类历史服役了60多年 。 第一次世界大战的战列舰就是用的这种类似的机械计算机 。
随着半导体的进步 , 内存越来越大 , 编程耗费的时间问题就有了改善的可能 。 IBM公司就在阿波罗登月后发明了汇编语言(也有别的说法) , 就是把01二进制封装成看得懂的地址操作 , 然后写算法 。 其实还是困难的 , 比如乘法 , 其实是汇编在地址里算加法 , 速度还是慢 。

随着内存越来越大 , 终于有了现代意义上的程序语言 。 比如C语言 , 它把汇编地址包装了 , 你写乘法就是编写乘法代码就好了 , 后面就是汇编在操作地址算加减 , 本质上还是计算机在搞二进制转换 。

【编程|接地气系列:认识计算机(6):认识循环,编译,汇编】计算机看不懂C语言 , 看不懂汇编 , 但是看得懂二进制 , 这不就行了 。