软考-数据库系统工程师学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软考-数据库系统工程师
第1章计算机系统知识
计算机系统基础知识
硬件及组成
一、计算机的组成
计算机硬件由5大件组成:控制器、运算器、存储器、输入设备、输出设备
(1)运算器(ALU):
也称算术逻辑单元,对数据进行算术运算和逻辑运算
加法器(累加器):
专门存放算术或逻辑运算的操作数和运算结果的寄存器。
程序状态寄存器 PSW:
用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,如有无进位(CY位),有无溢出(OV位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(P位)等;另一类是存放控制信息,如允许中断(IF位),跟踪标志(TF位)等
(2)控制器
是分析和执行指令的部件
指令寄存器
用于保存当前正在执行的指令
指令译码器
分析当前指令的操作码是要做什么
程序计数器
存放下一条指令的地址
定时与控制电路
堆栈和堆栈指针
数据表示
一、数的进制
十进制:以D表示。如:(123)D或(123)10
二进制:以B表示。如:(1011)B或(1011)2
八进制:以O(大写o)表示。如:(301)O或(301)8
十六进制:以H表示。如:(13E)H或(13E)16
二、进制转换
1.十进制转非十进制
把被转换的十进制整数反复地除以非十进制数,直到商为0,所得的余数(从末位读起)就是这个数的非十进制表示。简称“除*(*为非十进制数)取余法”
2.非十进制转十进制
方法:非十进制数按权展开求和
如:(10110)2=1*24+0*23+1*22+1*21+0*20=22
(335)8=3*82+3*81+5*80=221
三、原码、反码、补码、移码
1.带符号数的表示
通常的做法是约定一个数的最高位为符号位,若该位为0,则表示正数;若该位为1,则表示负数
(1)原码
用最高位表示符号位,数值部分用二进制绝对值表示。
如:+11的原码:00001011,-11的原码:10001011
(2)反码
正数的反码和其原码形式相同,负数的反码是除符号位,其他各位逐位取反(即0变1,1变0)
如:+11的反码:00001011,-11的反码:11110100
(3)补码
正数的补码和其原码形式相同,负数的补码是原码除符号位以外逐位取反(即0变1,1变0),最后在末尾加1.
如:+11的补码:00001011,-11的补码:11110101
将补码转换为真值:[[X]补]补=[X]原
(4)移码(增码)
无论正数、负数,在补码的基础上对符号位取反,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0
如:+11的补码:00001011,-11的补码:11110101
+11的移码:10001011,-11的移码:01110101
四、定点数和浮点数
计算机中,通常是用定点数来表示整数和纯小数,分别称为定点整数和定点小数。对于既有整数部分又有小数部分的数,一般用浮点数表示。
1.定点数
定点整数:
小数点的位置固定在最低位的右边,不占位
小数点的位置固定在符号位与最高数值位之间,表示一个纯小数
2.浮点数
用类似科学计算机法来表达,即
N=M*R e
M称为尾数,R称为基数,e为阶码(指数)
比如:1001.101的规范浮点数表达为1.001101*23
浮点数利用指数达到了浮动小数点的效果,从而灵活地表达更大范围的实数
校验码
一、编码体系
指一种编码方式中所有合法码字的集合
二、编码效率
合法码字占所有码字的比率就是编码效率。
三、码距
码距是衡量一种编码方式的抗错误能力的一个指标
1.码字的码距
一个编码系统中任意两个合法的编码之间的不同的二进制位的数目叫这两个码字的码距
2.编码系统的码距
该编码系统的任意两个编码之间的距离的最小值称为该编码系统的码距
四、误码
数字信息在传输和存取的过程中,由于各种意外情况的发生,数据可能会发生错误,即所谓误码。
五、奇偶校验
串口通信中使用奇偶校验作为数据校验的方法
使用一位奇偶校验的方法能够检测出1位错误,但无法判断是哪一位出错。
当发生两位同时出错的情况时,奇偶校验也无法检测出来。所以奇偶校验常用于对少量数据的校验,如1个字节。
被传输的有效数据中“1”的个数是奇数个,校验位填“0”,否则填“1”
2.偶校验:
被传输的有效数据中“1”的个数是偶数个,校验位填“0”,否则填“1”。
XOR(异或运算)是一种偶校验
六、海明码
海明码是奇偶校验的一种扩充。和奇偶校验的不同之处在于海明码采用多位校验码的方式,在这些多个校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验的位组合,可以达到发现错误、纠正错误的目的(当出现两位错误时,海明码能够查错,但无法纠错)。
海明码可以发现“<=码距-1”位的错误;可以纠正“<码距/2”位的错误,因此,如果要能够纠正n位错误,所需最小的码距应该的2n-1
海明码的原理
在数据中间加入几个校验码,码距均匀拉大,当某一位出错,会引起几个校验位的值发生变化
海明不等式
校验码个数为k,可以表示2k个信息,1个信息用来表示“没有错误”,其余2k-1个表示数据中存在错误,如果满足2k-1>=m+k(m为数据长度,m+k为编码后的数据编码总长度),则在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现了问题
海明码的编码规则
校验位依次放在第2i(i=0,1,2,3…)位,其余位置为信息位。
上表4个信息位k0,k1,k2,k3,3个校验位r0,r1,r2
第i个信息位的位数为参与校验它的校验位的位数之和。如上例7=4+2+1;6=4+2;5=4+1;3=2+1
从上式可得,k3要参与r2,r1和r0的生成,k2参与r2和r1的生成,k1参与r2和r0的生成,k0参与r1和r0的生成。则产生下列式子“⊕”符号为异或运算
r0=k3⊕k1⊕k0→ k3⊕k1⊕k0⊕r0=0→ B1⊕B3⊕B5⊕B7=0
r1=k3⊕k2⊕k0→ k3⊕k1⊕k0⊕r1=0→ B2⊕B3⊕B6⊕B7=0
r2=k3⊕k2⊕k1→ k3⊕k2⊕k1⊕r2=0→ B4⊕B5⊕B6⊕B7=0
若三个校验方程都成立,即方程式右边都等于0,则说明没有出错。若不成立,即方程式右边不等于0,说明有……
从三个方程式右边的值,可以判断哪一位出错。出错位置为从下向上看相应的二进制数值,若三个程式右边的值为100(如下式),说明第4位出错。
B1⊕B3⊕B5⊕B7=0
B2⊕B3⊕B6⊕B7=0
B4⊕B5⊕B6⊕B7=1