计算机结构组成
- CPU(中央处理器)(控制器+运算器)
 - 存储器(内存+外存)
 - 输出设备
 - 输入设备
 
计算机系统组成
- 硬件系统
- 主机
- 中央处理器
- 运算器
 - 控制器
 
 - 内存储器
- 只读存储器
 - 随机存储器
 
 
 - 中央处理器
 - 外部设备
- 输入设备
 - 输出设备
 - 外存储器
 
 
 - 主机
 - 软件系统
- 系统软件
- 操作系统
 - 语言处理系统
 - 系统服务程序
 - 数据库管理系统
 
 - 应用软件
- 文字处理软件
 - 表格处理软件
 - 辅助设计软件
 - 实时控制软件
 
 
 - 系统软件
 
CPU结构

- 8位寄存器:AL 28
 - 16位寄存器:AX 216
 - 32位寄存器:EAX 232
 - 64位寄存器:REAX 264
 
程序和指令
- 指令是对计算机进行程序控制的最小单位
 - 所有的指令的集合称为计算机的指令系统
- 机器指令格式
操作码 + 操作数 
 - 机器指令格式
 - 程序是为完成一项特定任务而用某种语言编写的一组指令序列
 
位,字节的概念
位:计算机中是以二进制来存储数据的,也就是0和1,一个二进制位(表示0或1),叫做一位,记为1bit。
字节:8个位(bit)代表一个字节
进制
二进制:逢二进一,只有0和1,用0b前缀标识
八进制:逢八进一,0~7,用0前缀标识
十六进制:逢十六进一,0~9,A~F,用0x前缀标识 
二进制转八进制:三个一组,相加连接
二进制转十六进制:四个一组,相加连接
其他进制转十进制(如abcde(每个字母代表一个数))
a * 进制4 + b * 进制3 + c * 进制2 + d * 进制1 + e * 进制0
用相应的位乘以进制的权重次幂,然后相加。
整数在计算机内部的存储方式
所有整数按补码存放
原码
将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值
+7的原码是00000111
-7的原码是10000111
+0的原码是00000000
-0的原码是10000000
反码
一个数如果值为正,那么反码和原码相同
一个数如果为负,那么符号位为1,其他各位与原码相反
+7的反码00000111
-7的反码11111000
-0的反码11111111
补码
原码和反码都不利于计算机的运算,如:原码表示的7和-7相加,还需要判断符号位。
正数:原码,反码补码都相同
负数:最高位为1,其余各位原码取反,最后对整个数 + 1
-7的补码:=
10000111(原码)
11111000(反码)
11111001(补码)
+0的补码为00000000
-0的补码也是00000000
计算机中的运算
用补码进行运算,减法可以通过加法实现
7-6=1
7的补码和-6的补码相加:00000111 + 11111010 = 100000001
进位舍弃后,剩下的00000001就是1的补码
-7+6 = -1
-7的补码和6的补码相加:11111001 + 00000110 = 11111111
11111111是-1的补码
语言的层次划分
- 高级语言:A + B
 - 汇编语言:ADD AX BX
 - 机器语言:0000 0001 1101 1000
 
主流语言发展历程
机器语言 -> 汇编语言 -> C语言 -> ObjectiveC语言 & C/C++语言 -> Java/C#/PHP/Lua/Python/VB···
C语言的特点
- 优点
- 代码量小
 - 执行速度快
 - 功能强大
 - 编程自由
 
 - 缺点
- 编写代码实现周期长
 - 可移植性较差
 - 过于自由,经验不足容易出错
 - 对平台库依赖较多
 
 
C的32个关键字
| auto | break | case | char | const | continue | default | do | 
|---|---|---|---|---|---|---|---|
| double | else | enum | extern | float | for | goto | if | 
| int | long | register | return | short | signed | sizeof | static | 
| struct | switch | typedef | unsigned | union | void | volatile | while | 

C的9种控制语句
| if( )~else~ | for( )~ | while( )~ | 
|---|---|---|
| do~while( ) | continue | break | 
| switch | goto | return | 
C的34种运算符
| 算术运算符: | + - * / % ++ – | 
|---|---|
| 关系运算符: | < <= == > >= != | 
| 逻辑运算符: | ! && || | 
| 位运算符: | << >> ~ | ^ & | 
| 赋值运算符: | = 及其扩展 | 
| 条件运算符: | ?: | 
| 逗号运算符: | , | 
| 指针运算符: | * & | 
| 求字节数: | sizeof | 
| 强制类型转换: | (类型) | 
| 分量运算符: | . -> | 
| 下标运算符: | [] | 
| 其它: | ( ) - |