1)冯·诺依曼计算机的主要特点

1:计算机硬件系统由运算器、控制器、存储器、输入设备以及输出设备五大部分组成,
计算机这几个部件之间通过总线通信
2:指令和数据以同等地位存放于存储器内。并可按地址访问。
3:指令和数据均可用二进制表示
4: 指令在存储器中按顺序存放,顺序执行的
现代计算器通常把运算器和控制器集成在一个芯片中,合称为中央处理器,就是常说的cpu.
存储器用来存放程序和数据,分为主存,辅存,cpu能直接访问的是主存,辅存的信息必须调入主存后,才能为cpu所访问, 指令和数据存储在存储器中,并可以按照地址寻访,均用二进制代码表示

image.png

2)计算机如何执行指令

高级语言→汇编语言→机器语言
控制单元负责把内存上的指令、数据存入寄存器
程序的执行过程就是不断地取出指令、分析指令、执行指令、访存取数、结果写回的过程。
image.png
例如一个hello_world.c,“C 语言代码 - 汇编代码 - 机器码” 这个过程,在我们的计算机上进行的时候是由两部分组成的。
第一个部分由编译(Compile)、汇编(Assemble)以及链接(Link)三个阶段组成。在这三个阶段完成之后,我们就生成了一个可执行文件。
第二部分,我们通过装载器(Loader)把可执行文件装载(Load)到内存中。CPU 从内存中读取指令和数据,来开始真正执行程序
image.png
动态链接库(DLL,Dynamic Linking Library),是共享库,多个程序都可以调用。

3) 磁盘

一个磁盘由多个盘片叠加而成。
盘片的表面涂有磁性物质,这些磁性物质用来记录二进制数据。因为正反两面都可涂上磁性物质,故一个盘片可能会有两个盘面。
20191123182101621.png

每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区
每个扇区存放的数据量相同,最内侧磁道上的扇区面积最小,因此数据密度最大
20191123183720314.png

4)二进制

在计算机系统内部,所有的信息都是用二进制进行编码的,原因:
1:二进制只有两种状态,使用有两个稳定状态的物理器件就可以表示二进制数的每一位,制作成本低,例如使用电荷的正负极性都可以很方便地表示0和1
2:二进制位1和0正好与逻辑位“真”和“假”对应,为计算机实现逻辑运算和逻辑判断提供了便利条件
3:二进制的编码和运算规则简单,通过逻辑门电路能方便实现算数
二进制的运算:

减法

计算机世界中是没有减法的,计算机在做减法的时候其实就是用加法来实现的减法运算。
表示负数的时候就要用到二进制补数,补数就是用正数来表示的负数。
为了获得补数,我们需要将二进制的各数位的数值全部取反,然后再将结果 + 1 即可。
image.png
二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位当作符号位。 符号位是 0 时表示正数,是 1 时表示 负数
所以-1的二进制表示方法就是 1111 1111

移位运算和乘除的关系

左移时,移位后,只需要将低位补 0 即可;向左移1位,相当于乘以2。移动2位是乘以4
如下例子中,原先数字用十进制表示就是39,右移一位(相当于乘以2)得到78
image.png
右移时,需要根据情况判断是逻辑右移还是算数右移。
算数右移:将二进制数作为带符号的数值进行右移运算时,移位后需要在最高位填充移位前符号位的值( 0 或 1)。
image.png

5) 字符编码和字符集

计算机中处理的信息都是二进制的,需要将数字、英文字母、标点符号、汉字等字符用一套规则编码为二进制表示。展示的时候,就需要用这套规则去解码。

  • 编码:字符(能看懂的)—字节(看不懂的)
  • 解码:字节(看不懂的)—>字符(能看懂的)

常见字符集

  • 在 ASCII 码字符集里面,共规定了128个字符的编码。

数字 9 不再像整数表示法里一样,用 0000 1001 来表示,而是用 0011 1001 来表示。字符串 15 也不是用 0000 1111 这 8 位来表示,而是变成两个字符 1 和 5 连续放在一起,也就是 0011 0001 和 0011 0101,需要用两个 8 位来表示。
英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的

  • GBK:最常用的中文码表
  • Unicode字符集 :表达任意语言的任意字符而设计,它最多使用4个字节的数字来表达每个字母、符号,或者文字。

但是它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。如果 Unicode 统一规定,每个符号用四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储来说是极大的浪费。
于是有了UTF-8 ,UTF-8 是 Unicode 的实现方式之一。是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

课程文档链接:https://www.yuque.com/books/share/227872c0-1f19-4c83-960e-5e13e39343c8/bt9fmf#lsSH3