二进制
计算机硬件
计算机的核心硬件包括: 中央处理器(CPU), 内存(Memory), 硬盘(Hard disc) ,显卡(Graphics card)。
计算机数据传输
电平是电压范围,规定输出高电平>2.4V,输出低电平<0.4V。因为只有两种信号,精确度就会比较高,不容易因为硬件的故障损耗,产生误差。
计算机因为只能传输和识别高低电平两种信号,所以我们采用了1(高电平)和0(低电平)来表示信号,也就产生了二进制。
二进制
二进制就是满2进1位。在计算机的世界如果要表示十进制的3,就要用二进制11来表示,十进制的5,就要用 101来表示。
1.二进制转十进制
那十进制的数是怎样转化成二进制的数呢?有一个最简单的方法,就是不断除以2。余数写在右边。然后从最后一个得到的商倒回去(商余数排列起来),得到的数就是二进制要表达的结果了哦。
例如:9/2=4....1 4/2=2....0 2/2=1....0 1/2=0....1 所以十进制的9=二进制的1001(从1/2=0....1那里向上取)
2.十进制转二进制
把二进制的数转化为十进制的方法:从左边第一位数乘以2的n-1次方(幂),n代表该数字从右到左数起的位数。加上从右边第二位数乘以2的n-1次方。依此类推,一直到最后一个数。
例如:1100=0*2^0+0*2^1+1*2^2+1*2^3=0+0+4+8=12(从右向左算,当前的数乘2的n-1次方[从右向左当前这位数是几他就是几])
内存的存储单位
位与字节
一个二进制数据的内存空间叫'位'(bit)
因为bit只能保存一个二进制数,所以它的值只有0和1
规定8位空间称为一个字节(byte)
通常情况下都用字节作为存储单位,一般情况下,一个英文字符,一个整数数字都是占一个字节;长的整数(十位以上的整数),浮点数(小数),汉字等都是占用两个字节以上。
例如:01111110就会被识别为十进制的126了
存储单位
1KB=1024Byte 所以1M=1048576Byte
1B(Byte)*1024=1KB 1KB*1024=1MB 1MB*1024=1GB 1GB*1024=1TB
十六进制
为什么会有16进制
因为2进制对于人来说读写很麻烦,而十进制对于计算机很麻烦,所以人们发明了16进制。
而且2^4=16,所以4位二进制正好可以表示为1位16进制。
计算格式:
BC53=11*16^3+12*16^2+5*16+3=45056+3072+80+3=48211
用在哪些地方:
1.计算机网卡地址,常写成6段12位16进制数
2.用来表示颜色的 RGB 系统( RGB 就是 red, green , blue 三原色的意思。 其他颜色都是根据这三个原色的不同值来表示出来的。)也是用 十六进制来表示颜色值的。# 00 00 FF 代表蓝色, # 00 FF 00 代表绿色。
3.汇编语言,等等
逻辑电路
逻辑电路是数字电路中最基本逻辑元件。
逻辑的基础就是门电路,所谓 "门" 就是一种开关,它能按照一定的条件去控制信号的通过(1)或者不通过(0)。
基础的逻辑关系有三种:and(与),or(或),not(非)。
not(非):本质就是取反。 输入是 0, 输出就是1; 输入是 1, 输出就是 0 。
格式:a=-b
and(与):本质就是取公共。输入有0,输出就是0;输入全是1,输出才是1。
格式:a and b =0/1 (用数学的理解a*b=0/1)
or(或):本质就是全要。输入有1,输出就是1;输入全是0,输出才是0。
格式:a or b =0/1 (用数学的理解就是a+b=0/1)
高级的逻辑关系:
与非(nand):本质就是先算and,再算not;输入有0,输出就是1;输入全1,输出就是0。
格式:-(a and b)=0/1
或非(nor):本质是先算or, 再算not;输入有1,输出就是0;输入全0,输出就是1。
格式:-(a or b)=0/1
异或(xor):本质就是输入相同,输出就为0;输入不相同,输出就为1。
格式: a ⊕ b=0/1(⊕是异或专属的运算符号)
##输入输出
输入输出都是基于转换信号
例如:
输入:键盘,鼠标等等
输出:显示器,打印机,音响等等
##计算机结构
其实现在还有哈佛结构等其他的计算机结构体系,但是因为冯诺依曼是计算机之父,为计算机的发展奠定了基础,而且大部分计算机都是冯诺依曼结构,所以计算机结构也可以叫做冯诺依曼结构。
冯诺依曼结构的特点:
1.计算机处理的数据和指令一律使用二进制数据表示。
2.指令和数据不加区别混合存储在同一个存储器中。
3.顺序执行程序的每一条指令。
程序执行的过程:实际就是不断的取出指令,分析指令,执行指令。
(每一条指令都明确了规定计算机从那个地址取数,进行怎么操作。)
流程:
1.计算机运行是,控制器先从存储器中取出第一条指令。
2.控制器进行译码接收指令要求
3.控制器再从存储器中取出数据,让运算器进行运算和逻辑操作。
4.再按地址把结果送回存储器中。
5.接着,控制器继续从存储器取下一条指令,直到遇到停止的指令。
计算机的程序基本就是转化两种流在各个元器件中流动。
一种是数据流,各种原始数据,中间结果,最终结果等等
一种是指令流,控制机器的各部分执行指令的要求的操作。
主要的硬件有:
1.中央处理器(CPU)
1.运算器(Arithmetic Logic Unit)
2.控制器(Controler)
2.存储器(Memory)
3.输出设备(Output Unit)
4.输入设备(Input Unit)
##数据存储
基础编码
因为计算机只能识别高低电压,所以保存数据时只能使用二进制
例如:A可以表示为01000001
为了统一标准,于是美国有了ASCII编码,同一了常用符号用哪些二进制表示(编码就是表示字符的约定标准)
除了ASCII还有其他标准,例如UTF-8(同时UTF-8是一种最通用的编码。)
ASCII了解一下就行,不需要背诵。需要的时候直接去网上查询就好了。(因为ASCII比较多就不弄了)
例子:电脑里的text/txt文件就是按照ASCII或Unico编码存储的。
特殊编码
文件格式:指电脑为了存储信息而使用的,是对特殊信息的特殊编码方式。 mp3,jpg,doc等都是特殊编码。
电脑文件都有后缀名/扩展名,根据扩展名不同,解读数据用的程序和编码就不同。
所以随意修改文件的扩展名,可能会导致文件无法打开。
常用的几种文件类型:
1.文本:txt,doc,docx等
2.图片:jpg,png,gif等
3.视频:mp4,avi,pmvb,wmv等
##编码设计
当我们面对一个问题时,我们需要分解问题,变成一个个可以执行的步骤。
例子:西红柿炒鸡蛋
1.买西红柿和鸡蛋
2.洗西红柿
3.打鸡蛋
4.煎鸡蛋
5.放西红柿一起炒
6.加调味品
7.出锅
注意:程序的执行顺序是从上下的
很多时候都需要反推才写得出运算过程
##条件结构
有时候不能按部就班,需要做选择;也就需要用到条件结构
例子:西红柿炒鸡蛋
1.买西红柿和鸡蛋
2.洗西红柿
3.打鸡蛋
4.煎鸡蛋
5.如果鸡蛋煎到金黄,放西红柿一起炒
6.加调味品
7.出锅
很多时候,当有多个选择时,我们写流程时,看起来不是很清晰。所有就有了流程图。
流程图常见符号:
圆角矩形:开始/结束(开始只有一个,但结束可以有很多个)
菱形:代表选择/条件结构
箭头:流程的行进方向
平行四边形:数据的输入和输出
矩形:中间的执行过程
##迭代/循环
有些步骤,需要执行多次,就需要用的循环去做。
迭代:不断修改调试检测,知道达到要求,满足条件为止;也可以理解为不断重复循环,知道满足条为止
伪代码:不是真正的代码,计算机不能识别和运行,他的逻辑与真实代码类似,是为了方便我们人类理解整个执行过程
例子:
1.查看电灯电源是否接好
2.接好就直接下一步,(没有就接好电源,如果接好电源,灯亮就结束,如果灯没亮就下一步)
3.检查灯泡是否损坏,坏了更换新的,如果换新亮了就结束,没亮就下一步,(没坏进行下一步)
4.请人维修
5.有编程语言写出来,就可以执行了
##分支结构
分支:一件事可以有多种解决方法,可供选择
分支结构的执行是依据一定的条件选择执行路径
子程序:将一个公牛单独写成一个函数,需要是直接使用函数即可。
##数据库
数据库:指的是以一定方式存储在一起,能为多个用户共享,应用程序彼此独立的数据集合(简单的说就是带有多个相关数据表的集合)
数据库 (Database) :有多个数据表组成,所以数据库中的数据以表为单位计算
表(table):由多组数据记录组成,所以数据表中的数据以记录为单位计算
记录( Record ) : 表中的每一行称为一个记录,它由若干个字段组成,所以记录中的数据以字段为单位。
字段 ( Field ):也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。
字段名字(Field name):就是每个字段的名字,也叫列名。
主键(primary key):可以是一个或多个字段。用来标记一条记录的主关键字段,会约束该字段/列必须唯一(不重复)且不为空。
外键(foreign key):一般用主键来当外键,因为外键会把两个相同的字段/列连接起来,所以一个字段/列会要求非空且唯一,另一个字段/列会要求填写的数据必须在这个字段里有。