zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    这段时间,拜读了一下Charles Petzold的大作<<编码:隐匿在计算机软硬件背后的语言>>,整体来说,这个它的封面所描述的一样,永不退色的计算机科学经典,评价就不多作了,然后总结一下自己的感受。

    整体而言,我感觉读这本书的收获很大,因为这本书语言生动流畅,简直是一部,计算机导论,汇编语言,数字逻辑电路,计算机组成原理,操作系统,微机接口的小综合,相比于大学时候的这些课程,这本书的代入感太强了,让人忍不住一口气读完,首先,从二进制说起,通过摩尔斯电码,布莱叶盲文引出我们所使用的二进制,然后将二进制和手电筒连接起来,简单的0和1,可以表示为手电筒的开和关,接着使用奇妙的构想,用手电筒和朋友通信,这就和布莱叶盲文,二进制结合了起来,解决了短距离的通信,但是又提出,如何才能远距离通信,就引出了电报,而电报的一个重要组件就是“继电器”,也就是我们高中物理之中的电磁铁,解决了远距离通信的问题,而且继电器还可以“比较自动”的工作,当然相比于我们现代意义的自动,那是差得很远,只能说是一步自动。接着对十进制数进行了分析,引出我们有十个手指,所以才使用十进制的观点,其实也是,很容易理解,而且这也不需要什么道理。在对于此部分分析的时候,就引出了常用的二进制,八进制,十六进制,通过对逻辑的分析,将其引导到开关这个概念,自然的,这和我们物理之中的电路就连接了起来,开关闭合,小灯泡才能亮起来,就有了“门”的概念,与开关不同的是,门是逻辑和电路的双重结合,逻辑包括最常见的与或非,由此也可以命名与门非门或门,而这些门的关键组件,在发展的初期,正是电报之中的“继电器”,在这个时候,就由计算机导论和中学物理进入了数字逻辑电路的内容,各种门,是学习继续的关键,在此就导出了两个与门可以做加法这个关键的结论,而这正是一切继续的基础。

    进位,加法器,全加器解决了加法的问题,那么减法呢?有进位,就有借位,求反,反码,补吗解决了减法的问题,当然两个数相减的时候可能出现小于零的数,那么就有了有符号和无符号的分别,当我们完成了加减法之后,怎么保存下来结果?这就出现了反馈,触发器,振荡器和锁存的概念,正是因为这些概念,可以让操作的结果或者输出,暂时的不受其他操作的影响而存在,同时也出现了反向器,分频器的概念。由于输入很多,可以产生好几种输出,那么如何选择一种呢?就产生了选择器,相应的还有译码器和编码器,这三个概念连接紧密,那么就有了写入写出,以及地址的概念,但是工作一多,我们也不耐烦,那么要自动,智能一点就是一个很大的任务和目标,自动的话,就要能经过一些人的简单操作,就自己去做事情,这就邮了,比如说我想让它做加法,那么加法就是一个指令,指令也有存放的地方,那么就需要“寻址”,然后再执行加法。解决了进位加法等问题,但是到目前位置,我每做一次加法,就要写一遍代码,让你做20遍,好烦啊,那么,对了,我可以利用刚才做的啊,但是如何利用?这就出现了一个关键的概念,区分计算机和计算器的概念:循环!!!(跳转/条件跳转),解决了这个问题,这才实现了自动化,我可以在允许的情况下,让目前的装置一直做加法,这就实现了“简单的自动化”,这些指令,地址一般使用十六进制的数字表示的,因为节省空间,但是不便于记忆,这就产生了汇编语言。

    还记得当初数字逻辑电路里面的三态门,这个概念,正是由于它,所以才有了今天的IC产业:芯片的设计和制作。这种结构之中通电了就能存储内容,不通电就没有东西存在,对啊,这就是RAM,也就是内存条Y__T,而我们常见的硬盘却是另一个议题,磁存储材料,最初是解决声音通过电磁铁和可变长度的金属丝来存储的问题而后续进展和演变的,这是录影电话的原理之一,磁介质的诞生,是为了“信息”的长期存储,将打孔和纸带这些术语埋葬到了历史之中,由此就有了随机存储材料和磁盘存储的区分,当然,信息通过一定的“编码”(ASCII)存放到“文件”之中,而文件的管理和存放,就是操作系统需要解决的问题了,操作系统其实就是一种解决“计算”问题的软件的集合。当我们设计好了先前的计算器时候,所产生的礼物就是“芯片”,而接下来的概念正是由他发展而来,即:微处理器(CPU),不过,负责任的讲,我们的礼物只能称作“单芯片微处理器”,在这个基础上,有整合了很多有用的指令,扩大了寻址的范围,提高了计算的速度,就有了更先进的微处理器了,随着工艺的提升和材料的跟进,处理器的价格也变得亲民,个人计算机(PC)随之而风靡,当时很快,我们不太乐见只能表示字符的计算机,所以就有了更好的显示器,有了图画等等,我们也可以通过一系列外设和计算机(CPU)交互了,这个概念就是微机接口里面的中断,其实就是调用(CALL)一段CPU提供的小代码(程序),信息输入输出的主要线路,就叫做总线,这些代码,可以用各种各样的“语言”来编写,和CPU“靠得近”的就叫做“低级语言”,反之就叫做高级语言,也就是说,封装的越好,越和什么类型的CPU无关的语言就“越高级”,当然这只是一个粗略的说法。

    在计算机历史的近代,操作系统是一个很关键的概念,因为这产生了很多有益于我们的思想和理念:分享,UNIX,这是不得不提的,分享直接导致了“网络”,也就是万维网,从此Java登上了历史的舞台,随着各种技术的发展,我们的生活也随之而日新月异。

  • 相关阅读:
    15、集合--TreeSet的源码分析(待完成)
    13、集合--HashSet相关方法源码解析(等map更新完成之后在进行补充)
    11、集合--Set接口
    10、集合--Set、AbstractSet、HashSet、TreeSet、SortedSet源码
    9、集合--ArrayList和LinkedList的一些对比
    8、集合--LinkedList的测试以及相关方法的源码分析
    7、集合--ArrayList的测试以及相关方法的源码解析
    6、集合--List接口
    Linux 高可用(HA)集群之keepalived详解
    CentOS7安装配置redis-3.0.0
  • 原文地址:https://www.cnblogs.com/prayjourney/p/12528095.html
Copyright © 2011-2022 走看看