计算机理论基础
1. 计算机理论基础 2. dos命令和常用快捷键 3. 二进制位运算
计算机理论基础
一、计算机理论常识
1. 操作系统
现代计算机是由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口等输入输出设备构成。
但是作为开发,作为程序员是不需要去和这些硬件打交道的。
所以,在这些硬件的基础上,安装了一层软件,这层软件通过用户输入的指令来达到控制硬件的效果,这层软件,被称之为操作系统。
一般常见的电脑操作系统有:
-
Windows
-
Linux
-
FreeBSD
-
MAC OSX
常见的手机操作系统有:
-
Harmony OS,
-
iOS
-
Android
-
Smartisan OS
-
MIUI
2. 运行环境
而我们平时需要用到的程序,比如游戏,它就需要一个运行环境,可以说,运行环境=操作系统+硬件。
3. 硬件基础
1. CPU
CPU全称叫做 Central Processing Unit,叫做中央处理器。
额外补:
CPU内部有什么呢?
-
寄存器是中央处理器内的组成部分。它们可以用来暂存指令、数据和地址。可以将其看作是内存的一种。根据种类的不同,一个CPU内部会有20- 100个寄存器。
-
控制器负责把内存上的指令、数据读入寄存器,并根据指令的结果控制计算机
-
运算器负责运算从内存中读入寄存器的数据。
-
时钟负责发出CPU开始计时的时钟信号
2. 内存
计算机第二个重要的部分就是内存了。
内存理想状态是需要读取速度快,容量大,还便宜。但是由于目前的技术办不到,就采用了多级缓存的方式,分层次的一种存储技术。
高速缓存:常见L1缓存都是在CPU内部的,部分CPU内部包含2级缓存L2,极少部分包含L3缓存。
主存:
高速缓存下一层就到了主存,我们常说的内存就是直接指的主存。
重要概念RAM和ROM:
随机存储器(RAM)︰内存中最重要的一种,表示既可以从中读取数据,也可以写入数据。当
机器关闭时,内存中的信息会丢失。只读存储器(ROM) ︰ ROM一般只能用于数据的读取,不能写入数据,但是当机器停电时,这些数据
不会丢失。
内存IC是一个完整的结构,它内部也有电源、地址信号、数据信号、控制信号和用于寻址的IC引脚来进行数据的读写。下面是一个虚拟的IC引脚示意图
0 1计算机 0V表示计算机的0 5V表示1
00000 00000 ~ 11111 11111 0~1023 总共可以代表1024个地址。
1 00000 00000 2^10=1024 -1
0000 0001 ==》00000 00001地址 1024*1byte =1k
了解计算机科学的进制转换。
单位 换算 大小 byte 1B = 8bit = 0000 0000 1 B kilo 1KB = 1024B 2^10 B Mega 1M = 1024KB 2^20 B Giga 1G = 1024MB 2^30 B Tera 1T = 1024GB 2^40 B Peta 1P = 1024TB 2^50 B exa 1E = 1024PB 2^60 B zetta 1Z = 1024EB 2^70 B yotta 1Y = 1024ZB 2^80 B
问题:
内存用来存储什么?重启电脑后,内存中的内容是否还存在?平时我们下载的软件、游戏又是存储在哪里?
3. 磁盘
磁盘与内存的区别:
-
内存是使用的电流来实现存储(回忆之前的内存IC),磁盘则是通过
磁记录技术实现存储。 -
内存是高速且造价昂贵的存储设备,磁盘速度较慢,造价低廉的存储设备。
-
断电后,内存数据丢失,磁盘中数据可以长久保留。
-
内存属于内部存储设备,磁盘属于外部存储设备
早期的磁盘,是指的软盘:
如今常用的磁盘是硬盘(hard disk):
以及固态硬盘:
软件不读取到内存中,则无法运行。CPU、内存、磁盘三者之间的关系。
思考一个问题:
为什么每次原神(一个游戏)更新,比如多了一块地图等,需要更新游戏?更新的是什么呢?玩游戏的时候,加载又是干嘛呢?
比如王者荣耀进入游戏时,需要加载到100%,经常看见一个提示,加载过程不消耗流量,这个又是在干嘛呢?
4. I/O设备
输入/输出(英文:Input/Output,简写为 I/O)是信息处理系统(例如计算器)与外部世界(可能是人类或另一信息处理系统)之间的通信。
输入是系统接收的信号或数据,输出则是从其发送的信号或数据。
输入/输出设备是硬件中 由 人(或其他系统)使用与计算器进行通信的部件。例如,键盘或鼠标是计算器的输入设备,而监视器和打印机是输出设备。计算器之间的通信设备(如电信调制解调器和网卡)通常运行输入和输出操作。
常见计算机设备:
常见设备传输数据速率:
二、常用cmd指令
什么是cmd?
命令提示符(Command Prompt)是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。
1. 常见的DOS命令
DOS命令窗体:Windows系统中提供的一个用于 命令操作的控制台
DOS命令,打开方式:
-
Win 图标 + R ,在弹出的运行窗体中,输入cmd回车
-
点击开始图标,点击“运行”,输入cmd回车
-
在任意的目录中,按住shift键,点击鼠标右键,选择:在此次打开Powershell窗口
-
我的电脑文件夹目录栏,输入cmd,直接在改目录下打开cmd,如下图:
常见的DOS命令:
-
dir
展示当前的文件夹中的所有的子文件和子文件夹的所有内容
-
cd ..
进入到当前目录的,上层目录中去
-
cd /
回到根目录中(盘符)
-
cd 指定的目录
进入到指定的目录中去,当然:如果是进入到其他盘符,还需要使用 盘符:
-
盘符:
d:
切换盘符
-
cls
清空屏幕
-
exit
退出DOS命令窗体
-
ping IP地址 : ping www.baidu.com
更多cmd命令如下:(了解)
2. 常见Windows快捷键
-
Ctrl +A 全选
-
Ctrl + S 保存
-
Ctrl +Z 撤销 回到上一步
-
Ctrl +Y 进入下一步
-
Ctrl + C 复制
-
Ctrl +V 粘贴
-
Win + E 打开我的电脑
-
Win + D 回到桌面
-
Win +R 打开运行窗体
-
Win +L 锁屏
三、二进制数
1. 为什么要用二进制表示
内存CPU和内存使用IC电子元件作为基本单元,IC电子元件有不同种形状,但是其内部的组成单元称为一个个的引脚。有人说CPU和内存内部都是超大规模集成电路,其实IC就是集成电路(IntegratedCircuit)。
上图的IC元件两侧,排列的四方形块(数字那些)就是引脚,IC的所有引脚,只有两种电压:0V和 5V,IC的这种特性,也就决定了计算机的信息处理只能用0和1表示,也就是二进制来处理。
一个引脚可以表示一个0或1,所以二进制的表示方式就变成0、1、10、11、100、101等,虽然二进制数并不是专门为引脚来设计的,但是和IC引脚的特性非常吻合。
计算机的最小集成单位为位,也就是比特(bit),二进制数的位数一般为8位、16位、32位、64位,也就是8的倍数,为什么要跟8扯上关系呢?因为在计算机中,把8位二进制数称为一个字节byte,一个字节有8位,也就是由8个bit构成。
为什么1个字节等于8位呢?因为8位能够涵盖所有的字符编码,这个记住就可以了。
字节是最基本的计量单位,位是最小单位。
用字节处理数据时,如果数字小于存储数据的字节数,那么高位就用0填补,高位和数学的数字表示是一样的,左侧表示高位,右侧表示低位。比如一个六位数用二进制数来表示就是 10 0111,只有6位,高位需要用0填充,填充完后是 0010 0111,占一个字节,如果用16位表示就是 0000 0000 0010 0111占用两个字节。
我们一般在软件开发中用十进制数表示的逻辑运算(+-*/这些)等,也会被计算机转换为二进制数处理。对于二进制数,计算机不会区分他是图片、音频文件还是数字,这些都是一些数据的结合体。
2. 什么是二进制数
那么什么是二进制数呢?为了说明这个问题,我们先把 0010 0111 这个数转换为十进制数看一下,二进制数转换为十进制数,直接将各位置上的 值*位权 即可,那么我们将上面的数值进行转换。
上图 中的内容:
$$
1*2^5
$$
1指第5位(上图最左边的第一个1)的值(从高位到低位分别是 7 6 5 4 3 2 1 0),2表示基数,5表示次幂(由位子得出,第一个1正好是第5位),而2的5次方就是位权,由基数做次幂运算得出。
同理,十进制也是一样,39,并非是39两个数字连着,而是
$$
3*10^1+9*10^0
$$
对应位权就是10的一次方和0次方,十进制的基数就是10.
3. 便于计算机处理的补数
之前研究了正数二进制转换为10进制, 那么如果是负数怎么办? 负数又是如何显示的?
二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位当作符号位。
符号位是0时表示正数,是1时表示负数。
那么-1用二进制数该如何表示呢?
可能很多人会这么认为: 因为1的二进制数是0000 0001,最高位是符号位,所以正确的表示-1应该是10000001,但是这个答案真的对吗?
前置知识: 计算机只有加法和位移来实现所有的加减乘除操作,位移后面讲。
计算机做减法的时候,实际上,使用的是加法,比如 1-1,对于计算机来说就等于1+(-1),那么-1在计算机中,则需要使用补数(补码)来进行。
那补数是怎么计算出来的?以-1举例:
具体来说,就是需要先获取某个负数的数值的二进制数(也就是上图的原始数值),然后对二进制数的每一位做取反操作(0 ---> 1 , 1 --->0),最后再对取反后的数+1,这样就完成了补数的获取。
总结一下就是原始数值 取反再+1,得出补数。
先来试一下,错误的结论,如果没有补数,则会出现什么问题:
所以,最终,如果计算机使用的是1000 0001 表示负一,则计算结果位130,与预期的1-1结果完全不符合。
现在用之前计算的-1的补数1111 1111来进行计算:
计算机会忽略掉溢出的数据,第九位的1溢出了,所以最终结果就为0000 0000。
如果结果是负数呢?又要怎么计算?尝试计算3-5:
所以,补码 转成 原码,也是取反再+1。
4. 逻辑与算数位移
左移和右移:左移效果。
逻辑右移与算数右移:将-4右移2位
那么我们可以得出来一个结论︰
左移时,移位后,只需要将低位补0即可;
右移时,需要根据情况判断是逻辑右移还是算数右移。
5. 逻辑运算
计算机能够处理的运算,大体可分为逻辑运算和算数运算,
算数运算指的是加减乘除四则运算;
逻辑运算指的是对二进制各个数位的0和1分别进行处理的运算,包括逻辑非(NOT运算)、逻辑与(AND运算)、逻辑或(OR运算)和逻辑异或(XOR运算)四种。
-
逻辑非指的是将0变成1,1变成0的取反操作
-
逻辑与指的是"两个都是1时,运算结果才是1,其他情况下是0"
-
逻辑或指的是"至少有一方是1时,运算结果为1,其他情况下运算结果都是0"
-
逻辑异或指的是"其中一方是1,另一方是0时运算结果才是1,其他情况下是0"
简述口诀:
逻辑非:取反
逻辑与:有0则0
逻辑或:有1则1
逻辑异或:相同得0,不同得1; 或者如下图,左右直接相加,不进位,比如0+0=0,1+1 =0, 0+1=1。
登录
前往注册账号注册
注册成功,默认密码已通过短信发送给您
欢迎来到蜗牛学苑~
我们仍旧想要当初想要的不一样,世间浮沉,到最后还是想要和当初想要的和别人不一样。
3小时前 2人点赞