本篇为计算机原理部分
为增加可读性三部分分为三篇文章,另外两片链接如下:
计算机基础网络篇
计算机基础操作系统篇
一,冯诺依曼机
现代的计算机都属于冯诺依曼机。创造了通用电路与程序指令构成的可塑性极强的计算机。
包括输入设备,输出设备,控制器,运算器,储存器
二,计算机层次与编程语言
20190806181621.jpg程序翻译:编译器将高级程序,翻译为计算机底层编码,生成新的,由低级语言组成的程序的过程。
例:C/C++、golang程序解析:由一个低级语言编写的解释器,将高级程序语言的每个语句作为输入,转换为计算机底层码并执行,不生成新的程序
例:python、php、JSJAVA,C#属于两种混合
硬件逻辑层:门,触发器等逻辑电路
微程序机器层:微指令集
传统机器层:CPU指令集,机器指令
操作系统层:向上提供管理界面,向下对接指令系统,管理资源
汇编语言层:
高级语言层:编程语言,Python,C,JS等
应用层:app,软件
三,计算机的计算单位(容量与速度)
-
容量单位(M,G,T)
物理层面,高低电平记录信息,高电平是1,低电平是0,是一个bit,比特位
一个字节单位 = 8bits
捕获.PNG -
速度单位
网络速度 : 100M光纤 == 12M/S的峰值
速度单位Mbps => Mbits/s,所以有以上对应
CPU速度 : 时钟频率,单位赫兹Hz
2GHz = 2 * 1000^3 Hz = 每秒20亿次(高低电平的变化次数)
四,字符与编码集
- ASCII码(共128个 = 33 + 95 = 2^7)
7个bits即可表示 / 95个可打印字符 / 33个不可打印字符(包括控制字符) - extend ASCII
- 字符编码集的国际化(中文编码集)
GB2312(收录了6763个汉字和682个符号)
GBK(兼容GB2312,收录21003个汉字,支持全部中日韩汉字) - Unicode(全球字符集)
UTF-8 即以字节为单位对Unicode编码
windows系统默认使用GBK编码
五,计算机的组成
1.计算机总线
USB:uuniversal serial bus通用串行总线
PCI总线,ISA总线等等。。。。解决了不同设备之间的通信问题
- 总线的分类:
片内总线:芯片内部
系统总线:链接计算机各种设备(数据总线,地址总线,控制总线) - 总线的仲裁:
不同设备使用总线的优先顺序
2.存储器
- 分类:
介质:半导体(内存,U盘),磁力(磁带,磁盘)
方式:RAM(随机存储器,内存条),串行存储器,只读存储器ROM -
层次结构:
读写速度:5400/7200转的硬盘
存储容量:G,T
微信截图_20190807210842.png
微信截图_20190807210917.png
计算机的主存储器(RAM)与辅助存储器(硬盘,即磁盘)
- 内存(RAM)通过电容存储数据,断电后,数据会丢失
内存通过地址总线和数据总线与CPU链接。32位系统,最大支持4G内存,因为32位系统的地址总线,只有32位,最多寻址2^32 = 4GB。 - 高速缓存
工作原理:命中率,访问效率等
替换策略:几种替换策略 -
指令系统:
机器指令:操作码+地址码(零地址,一地址,二地址,三地址)
操作类型:数据传输,算数逻辑,移位操作,控制指令
寻址方式:指令寻址(顺序,跳跃),数据寻址
微信截图_20190807222053.png -
控制器(CPU)
WX20190808-120003@2x.png -
运算器(CPU)
WX20190808-120337@2x.png -
指令的执行过程
WX20190808-121905@2x.png
WX20190808-122032@2x.png
以上步骤,控制器与运算器不能同时工作,为提高效率:
WX20190808-122234@2x.png
六,计算基础
1.进制
二进制 1024 = 0b100000000
八进制 1024 = 0o2000
十六进制 1024 = 0x400
2.转换方法
3.符号数(±)
-
原码表示法:(比较原始)
第一位为符号位
0表示正数,1表示负数
+237 = 011101101
-237 = 111101101
WX20190809-174134@2x.png -
补码表示法:
WX20190809-175134@2x.png -
反码表示法
WX20190810-120645@2x.png
WX20190810-122143@2x.png
4.定点数与浮点数,及其运算
- 定点数与比例因子
5.算法实践
实践内容:用双向链表实现以下三种算法
- FIFO算法(先进先出)
- LRU算法(最近最少使用)
- LFU(最不经常使用)
-
双向链表
优点:快速找到上一个和下一个节点,快速去掉某个节点
实现一个双向链表:
节点类,链表类,链表的私有方法和外部API
即可用双向链表,实现以上算法
WX20190812-154939@2x.png
网友评论