《计算机是怎样跑起来的》最全读书笔记--Binrry(冰蕊)

点击关注,期待Binrry(冰蕊)带给你更多更全的读书笔记~~

在这里插入图片描述

这是一本浅显易懂、图文并茂的计算机基础书。

目录

目录1
目录2
目录3

第1章 计算机的三大原则

问题-----------------------

初级问题
硬件和软件的区别是什么?

中级问题
存储字符串“中国”需要几个字节?

高级问题
什么是编码(Code)?

答案-----------------------

初级问题:
硬件是看得见摸得着的设备,比如计算机主机、显示器、键盘等。而软件是计算机所执行的程序,即指令和数据。软件本身是看不见的。

中级问题:
在GBK字符编码下,存储“中国”需要4个字节。

高级问题:
通常将为了便于计算机处理而经过数字化处理的信息称作编码。

解释-----------------------

初级问题:
硬件(Hardware)代表“硬的东西”,而软件(Software)代表"软的东西” 是硬的还是软的取决于眼睛能否看得到,或者实际上能否用手摸到。

中级问题:
存储汉字时,字符编码不同,汉字所占用的字节数也就不同。在GBK字符编码下,一个汉字占用2个字节。在UTF-8字符编码下,一个汉字占用3个字节.

高级问题:
计算机内部会护所有的信息都当成数字来处理,尽管有些信息本来不是数字。用于表示字符的数字是"字符编码”,用于表示颜色的数字是"颜色编码"。

1.1 计算机的三个根本性基础

1.计算机是执行输入、运算、输出的机器
2.程序是指令和数据的集合
3.计算机的处理方式有时与人们的思维习惯不同

第2章 试着制造一台计算机吧

问题-----------------------

初级问题
CPU是什么的缩写?

中级问题
Hz是表示什么的单位?

高级问题
Z80 CPU是多少比特的 CPU?

答案-----------------------

初级问题:
CPU是Central Processing Unit(中央处理器)的缩写。

中级问题:
Hz(赫兹)是频率的单位。

高级问题:
Z80 CPU是8比特的 CPU.

解释-----------------------

初级问题:
CPU是计算机的大脑,负责解释、执行程序的内容。有时也将CPU称作“处理器”。

中级问题:
通常用Hz来表示驱动CPU运转的时钟信号的频率。1秒发出1次时钟信号就是1Hz,所以100MHz(兆赫兹)的话就是100x100万=1亿次/秒。M(兆)代表100万。

高级问题:
CPU上数据总线的条数,或者CPU内部参与运算的寄存器的容量,都可以作为衡量CPU性能的比特数。在Z80 CPU中,无论是数据总线的条数还是寄存器的容量都是8比特,所以Z80CPU是一款8比特的CPU.而在Windows个人计算机中广泛使用的Pentium(奔腾)CPU则是32比特的 CPU.

在这里插入图片描述

第3章 体验一次手工汇编

问题-----------------------

初级问题
什么是机器语言?

中级问题
通常把标识内存或I/O中存储单元的数字称作什么?

高级问题
CPU中的标志寄存器(Flags Register)有什么作用?

答案-----------------------

初级问题:
由二进制数字构成的程序,CPU可以直接对其触释、执行。

中级问题:
标识内存或I/O中存储单元的数字叫作“地址”。

高级问题:
用于在运算指令执行后,存储运算结果的某些状态

解释-----------------------

初级问题:
不仅是汇编语言,用C语言,Java,BASIC等编程语言编写的程序,也都需要先转换成机器语言才能被执行。机器语言有时也叫作“原生代码”(Native Code)。

中级问题:
内存中有多个数据存储单元。 计算机用从0开始的编号标识每个存储单元,这些编号就是地址(Address)I/O中的寄存器也可以用地址来标识。 哪个寄存器对应哪个地址,取决于CPU和I/O之间的布线方式。

高级问题:
Flag的本意是“旗子”,这里引申为“标志”。一旦执行了算术运算、逻辑运算、比较运算等指令后,标志寄存器并不会存放运算结果的值,而是会把运算后的某些状态存储起来,例如运算结果是否为0、是否产生丁负数,是否有溢出(Overflow)等。
在这里插入图片描述

第4章 程序像河水一样流动着

问题-----------------------

初级问题
Flow Chart的中文意思是什么?

中级问题
请说出自然界中河流的三种流动方式。

高级问题
事件驱动是什么?

答案-----------------------

初级问题:流程图。

中级问题:向着一个方向流淌;流着流着产生支流;卷成漩涡。

高级问题:用户的操作等产生事件后,由事件决定程序的流程。

解释-----------------------

初级问题:
流程图(Flow Chart)是指用图的形式表示程序的流程。

中级问题:
与河流的流动方式一样,程序的流程也分为三种。在程序中,把犹如水流向着一个方向流淌的流程称作“顺序执行”;把犹如水流流着流着产生了支流的流程称作“条件分支”;把犹如水流卷成漩涡的流程称作“循环”。

高级问题:
Windows应用程序的运行就是由事件驱动的。例如,选择“打开文件”菜单项就能打开一个窗口,在里面可以指定要打开文件的名称和存储位置。之所以能够这样是因为一旦触发了"选中了菜单项”这个事件,程序的流程就相应地流转到了处理打开窗口的那部分。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五章 与算法成为好朋友的七个要点

问题-----------------------

初级问题
Algorithm翻译成中文是什么?

中级问题
辗转相除法是用于计算什么的算法?

高级向题
程序中的“哨兵”指的是什么?

答案-----------------------

初级问题: Algorithm翻译成中文是“算法”

中级问题:是用于计算最大公约数的算法

高级问题:“哨兵”指的是一种含有特殊值的数据,可用于标识
数据的结尾等。

解释-----------------------

初级问题:
算法( Algorithm)一词的含义,不仅能在计算机术语辞典上查到,就是用普通的英汉辞典也能查到。

中级问题:
最大公约数指的是两个整数的公共约数中最大的数使用辗转相除法,就可以通过机械的步骤求出最大公约数

高级问题:
字符串的末尾用0表示,链表的末尾用-1表示,像这种特殊的数据就是哨兵。
在这里插入图片描述

第6章 与数据结构成为好朋友的七个要点

问题-----------------------

初级问题
程序中的变量是指什么?

中级问题
把若干个数据沿直线排列起来的数据结构叫作什么?

高级问题
栈和队列的区别是什么?

答案-----------------------

初级问题:变量是数据的容器。

中级问题:叫作“数组”。

高级问题:栈中数据的存取形式是LFO;队列中数据的存取形
式是FIFO

解释-----------------------

初级问题:
变量中所存储的数据是可以改变的。变量的实质是按照变量所存储数据的大小被分配到的一块内存空间。

中级问题:
使用了数组就可以高效地处理大量的数据。数组的实质是连续分配的一块特定大小的内存空间。

高级问题:
LIFO( Last In First Out,后进先出)表示优先读取后存入的数据;FIFO( First In First Out,先进先出)表示优先读取先存入的数据。

数组是数据结构的基础,只要使用数组就能通过程序实现各种各样的算法以处理大量的数据。数组在内存中存储数据的空间是连续分布的。

表6.1主要的典型数据结构

名称数据结构的特征
把数据像小山一样堆积起来
队列把数据排成一队
链表可以任意地改变数据的排列顺序
二叉树把数据分为两路排列

“栈”(Sack)的本意是干草堆。通常把这种存取方式称为Last In First out,后进先出,即最后被存入的数据是最先被处理的。
“队列”( Queue)就是等待做某事推成的队。通常把这种形式称为First In First Out,先进先出,即最先被存入的数据也是最先被处理的。

第7章 成为会使用面向对象编程的程序员吧

问题-----------------------

初级问题
Object翻译成中文是什么?

中级问题
OOP是什么的缩略语?

高级问题
哪种编程语言在C语言的基础上增加了对OOP的支持?

答案-----------------------

初级问题: Object翻译成中文是“对象”

中级问题:OOP是 Object Oriented Programmin(面向对象
编程)的缩略语。

高级问题:C++语言。

解释-----------------------

初级问题:对象( Object)是表示事物的抽象名词。

中级问题:面向对象也可以简称为Oo( Object Oriented)

高级问题:++是表示自增(每次只将变量的值增加1)的C语言运算符。之所以被命名为C++,是因为C++在C语言的基础上增加了面向对象的机制这一点。另外,将C++进一步改良的编程语言就是Java和C#语言。

面向对象编程(OOP, Object Oriented Programming)是一种编写程序的方法,旨在提升开发大型程序的效率,使程序易于维护。

观点1:面向对象编程通过把组件拼装到一起构建程序
在面向对象编程中,使用了一种称为“类”的要素,通过把若干个类组装到一起构建一个完整的程序。从这一点来看,可以说类就是程序的组件( Component)面向对象编程的关键在于能否灵活地运用类。

观点2:面向对象编程能够提升程序的开发效率和可维护性
通常将像这样的一组类(一组组件)称作“类库”。通过利用类库可以提升编程的效率。还有一些类原本是为开发其他程序而编写的,如果可以把这些现成的类拿过来使用,那么程序的开发效率就更高了。所谓企业级的程序,指的是对可维护性有较高要求的程序。可维护性体现在当程序投入使用后对已有功能的修改和新功能的扩充上。

观点3:面向对象编程是适用于大型程序的开发方法

观点4:面向对象编程就是在为现实世界建模
在实际建模的过程中,要进行“组件化”和“省略化”这两步。所组件化,就是将可看作是由若干种对象构成的集合的现实世界分割成组件。

观点5:面向对象编程可以借助UML设计程序

可以说建模就是在为面向对象编程做设计。为了把对现实世界建模的结果以图形的形式表示出来,还经常使用被称作UML( Unified Modeling Language,统一建模语言)的表记方法。UML是通过统一历史上曾经出现的各种各样的表记方法而发明出来的,事实上UML已经成为了建模表记方法中的世界标准。
在这里插入图片描述
在进行面向对象编程的设计时,要在一开始就把所需要的类确定下来,然后再在每个类中列举出该类应该具有的函数和变量,而不要到了后面才把零散的函数和变量组织到类中。

观点6:面向对象编程通过在对象间传递消息驱动程序
也就是说用C++等面向对象编程语言编写程序的话,程序可以通过由一个对象去调用另一个对象所拥有的函数这种方式运行起来。这种调用方式被称为对象间的“消息传递”。

观点7:在面向对象编程中使用“继承”( Inheritance)、“封装”( Encapsulation)和“多态( Polymorphism)

继承指的是通过继承已存在的类所拥有的成员而生成新的类。封装指的是在类所拥有的成员中,隐藏掉那些没有必要展现给该类调用者的成员。多态指的是针对同一种消息,不同的对象可以进行不同的操作。

使用类的程序员可以通过三种方法使用类,分别是:
1.仅调用类所持有的个别成员(函数和变量);
2、在类的定义中包含其他的类(这种方法被称作组合);
3通过继承已存在的类定义出新的类。应该使用哪种方法是由目标类的性质以及程序员的目的决定的。

第8章 一用就会的数据库

问题-----------------------

初级问题
数据库术语中的“表”是什么意思?

中级问题
DBMS是什么的简称?

高级问题
键和索引的区别是什么?

答案-----------------------

初级问题:
表(Tabe)就是被整理成表格形式的数据

中级问题:
DBMS是 Database Management System(数据库管理系统)的简称。

高级问题:
键用于设定表和表之间的关系( Relationship),而索引是提升数据检索速度的机制。

解释-----------------------

初级问题:
一张表由若干个列和行构成。列也被称为字段( Field),行也被称为记录( Record)。

中级问题:
市面上的DBMS有 SQL Server、 Oracle、DB2等。无论是哪种DBMS都可以用基本相同的SQL语句操作。

高级问题:
其上每个值都能够唯一标识一条记录的字段称为主键。为了在表和表之间建立关系而在表中添加的、其他表主键的字段称为外键。而索引是与键无关的机制。

数据库是数据的基地
所谓数据库( Database)就是数据(Data)的基地(Base)

索引能够提升数据的检索速度
索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。例如,如果在顾客表的顾客姓名字段上设置了索引,DBMS就会创建一张索引表(如图8.13所示),表中有两个字段,分别存储着顾客姓名和位置(所对应的记录在数据文件中的位置)。与原来的顾客表相比,索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所起的就是“目录”的作用。与图书的目录一样,数据库的索引也是一种能够高效地查找目标数据的机制。

第9章通过七个简单的实验理解TCP/IP网络

问题-----------------------

初级问题
LAN是什么的缩略语?

中级问题
TCP/P是什么的缩略语?

高级问题
MAC地址是什么?

答案-----------------------

初级问题:
LAN是 Local Area Network(局域网)的缩略语

中级问题:
TCP/P是 Transmission Control Protocol/Internet Protocol(传输控制协议和网际协议)的缩略语。

高级问题:
所谓MAC地址就是能够标识网卡的编号。

解释-----------------------

初级问题:
通常把在一栋建筑物内或是一间办公室里的那种小规模网络称作LAN。与此相对,把互联网那样的大规模网络称作WAN( Wide Area Network,广域网)。

中级问题:
TCP/IP协议族是互联网所使用的一套标准协议。TCP/IP这个名字意味着同时使用了TCP协议和IP协议。

高级问题:
几乎所有的网卡都会在上市前被分配一个不可变更的MAC地址。

实验1:查看网卡的MAC地址
因为MAC地址是由制造厂商的编号和产品编号两部分组成的,所以世界上的每一个MAC地址都是独一无二的。
在这里插入图片描述
其中00-005D代表制造商,B8-39-B0代表产品的编号。
实验2:查看计算机的IP地址
在这里插入图片描述
显示在 IP Address后面的202.26.186.174就是IP地址。请诸位再留意一下显示在 Subnet mask后面的255.255.255.240。这串数字是“子网掩码”。子网掩码的作用是标识出在32比特的IP地址中,从哪一位到哪一位是网络地址,从哪一位到哪一位是主机地址。图中对应的IP地址前28比特是网络地址,后4比特是主机地址。
实验3:了解DHCP服务器的作用
“自动获得IP地址”这个选项使得计算机在启动时会去从DHCP服务器获取IP地址和子网掩码,并自动地配置它们。DHCP的全称是 Dynamic Host Configuration Protocol(动态主机设置协议)。

实验4:路由器是数据传输过程中的指路人

路由器正如其名,就是决定数据传输路径的设备。
在这里插入图片描述

实验5:查看路由器的路由过程
在这里插入图片描述

实验6:DNS服务器可以把主机名解析成地址
实际上,在互联网中还存在着一种叫作DNS( Domain Name System,域名系统)的服务器。正是该服务器为我们www.grapecity.eom这样的
域名解析为了210.160.205.80这样的IP地址。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验7:查看IP地址和MA地址的对应关系

在计算机中就加入了一种程序,用于实现由PP地址到MAC地址的转换,这种功能被称作ARP( Address resolution protocol,地址解析协议)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第10章 试着加密数据吧

问题-----------------------

初级问题
通常把还原加密过的文件这一操作叫作什么?

中级问题
在字母A的字符编码上加上3,可以得到哪个字母?

高级问题
在数字签名中使用的信息摘要是什么?

答案-----------------------

初级问题:叫作解密。

中级问题:可以得到字母D

高级问题:信息摘要是指从作为数字签名对象的文件整体中计算出的数值。

解释-----------------------

初级问题:本章将会介绍加密和解密的具体例子。

中级问题:
因为字母表中的字母编码是按字母顺序排列的,所以在字母A的编码上加3,即A→B→C→D,所以可以得到D。

高级问題:
对比由文件整体计算出的信息摘要,可以证明文件的内容有没有被篡改。加密处理过的信息摘要就是数字签名。

第11章 XML究竟是什么

问题-----------------------

初级问题
XML是什么的缩写?

中级问题
HTML和XML的区别是什么?

高级问题
在处理ML文档的程序组件中,哪个成为了W3C的推荐标准?

答案-----------------------

初级问题:XML是 Extensible Markup Language(可扩展标记语言)的缩写。

中级问题:HTML是用于编写网页的标记语言。XML是用于定义任意标记语言的元语言。

高级问题:DOM( Document Object Model,文档对象模型)

解释-----------------------

初级问题:所谓标记语言,就是可以用标签为数据赋予意义的语言。

中级问题:通常把用于定义新语言的语言称作元语言。通过使用XML可以定义出各种各样的新语言。

高级问题:本章将会介绍使用了DOM的示例程序。
在这里插入图片描述
在这里插入图片描述

第12章 SE负责监管计算机系统的构建

问题-----------------------

初级问题
SE是什么的缩略语?

中级问题
IT是什么的缩略语?

高级问题
请列举一个软件开发过程的模型

答案-----------------------

初级问题:SE是 System Engineer(系统工程师)的缩略语

中级问题:IT是Information Technology(信息技术)的缩略语

高级问题:软件开发过程的模型有“瀑布模型”“原型模型”“螺旋模型”等。

解释-----------------------

初级问题:在计算机系统的开发过程中,SE是参与所有开发阶段的工程师

中级问题:一提到IT,通常就意味着充分地运用计算机解决问题但 Information Technology(信息技术)这个词中并没有
包含表示计算机含义的词语。

高级问题:本章将会详细地介绍应用瀑布模型的开发过程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值