0. 计算机基础知识

程序是什么

为使电子计算机执行一个或多个操作,按顺序设计的计算机指令的集合。

程序的核心

算法与数据结构的组合就是程序,程序的核心是数据。 数据在计算机中的存储方式就是数据结构。

计算机是什么

计算机是一种利用数字电子技术,根据一系列指令指示其自动执行任意算术或逻辑操作串行的设备。也就是说,计算机是能够执行程序的机器。

冯诺依曼体系架构

冯诺依曼体系指出,现代计算机必须具有五个单元,分别是输入设备、输出设备、储存器、运算器与控制器。 其中运算器与控制器都在CPU内部。现在的CPU还有寄存器与多级缓存。 硬盘、网络设备等都属于IO设备,IO设备只能与储存器之间交互,与CPU不能直接交互。

计算机语言

人与计算机交互的语言。

低级语言

机器语言

一定位数的二进制01序列,就是机器指令。机器指令的集合就是机器语言。

汇编语言

用一些助记符号代替机器指令,就是汇编语言。汇编语言需要汇编器转化为机器指令后才可以运行。

高级语言

接近自然语言与数学语言的计算机语言。人们只需要关系怎么书写程序,不同机器的编译交给编译器操作。

编译语言

例如C语言、C++语言,需要本地编译成CPU指令才能执行的语言。

解释语言

解释后转化为字节码。运行在虚拟机中,解释器执行中间代码的语言。例如C#,Python,Java。

高级语言的分类与发展

非结构化语言

可以有多个入口和出口,用GOTO进行跳转的语言。

结构化语言

顺序,有分支与循环。只能是单一的出入口

面向对象语言

面向对象的语言主要更接近于人类认识世界的方式,将各种内容抽象为对象,类与继承。

函数式语言

古老的编程范式,处理数学计算。

现在的语言基本都是多范式的语言

进制

常见的进制有二进制、八进制与十六进制、十进制。 十进制中单位不能表示10,8进制、十六进制、二进制亦然。

进制转换

转换到十进制

0b110101 = 
1*2**5 + 
1*2**4 + 
0*2**3 + 
1*2**2 + 
0*2**1 + 
1*2**0 = 
53

转换到其他进制

      127               0b01111111
2|----------   1  ↑
  |    63         |
 2|---------   1  |
   |   31         |
  2|--------   1  |
    |  15         |
   2|-------   1  |
     |  7         |
    2|------   1  |
      | 3         |
     2|-----   1  |
        1         |
        __________|

原码、反码、补码、负数表示法

例如在这里,16位用来保存一个数字 那么最大能够保存的数是32767,最小是-32767,共65535个。

十进制数字

原码

反码

补码

5

0000 0000 0000 0101

0000 0000 0000 0101

0000 0000 0000 0101

127

0000 0000 0111 1111

0000 0000 0111 1111

0000 0000 0111 1111

-1

1000 0000 0000 0001

1111 1111 1111 1110

1111 1111 1111 1111

正数三码合一。 负数的反码是符号位以外取反,补码是反码+1。 在计算机的世界只有补码。

Last updated