知识点总结
一.计算机采用二进制编码的好处:
1.表示方便
2.四则运算简单
3.节省存储器件
4.便于逻辑分析与设计
二.数值数据三要素
1.进位计数制及其转换(进位计数制解决数值数据的基本表示符号)
(1)进位计数制
①计数符号(基数个)
②权值:基数n,其中n=……-2,-1,0,1,2……
(2)不同数制的转换
①二、八、十六进制 → 十进制:按权展开求和
②二进制 → 八、十六进制:从小数点开始左右三位(四位)对应1位八(十六)进制数,左不足高位补0,右不足低位补0
③十进制 → 二、八、十六进制:整数部分除基取余,小数部分乘基取整
④八、十六进制 → 二进制:以小数点为界限每一位按3或4位展开,不够位数加零补足
2.定点/浮点表示(解决小数点位数问题)
(1)定点表示
①定点数约定机器中所有数据的小数点位置是固定不变的
②把小数点固定在数值部分的最高位之前或数值部分的后面(纯小数或纯整数)
(2)定点数的范围
①纯小数范围:2-n ≤ |x| ≤ 1-2-n
②纯整数的表示范围:0 ≤ |x| ≤ 2n-1
(3)浮点表示
①浮点数的编码表示:
公式:X=(-1)s×M×Re
其中:
s取0或1决定数值正负
尾数M决定精度(M大于等于0时,规范格式为M=0.1XXX;M小于0时,规范格式为M=1.0XXX)
基数R(取2、4、16等)决定小数点位移步长
阶码e决定小数点位移的次数(即浮点数的表示范围)
②浮点数的表示法:一般形式和IEEE形式
IEEE标准:
其中S为数符,它表示浮点数的正负,但与其有效位(尾数)是分开的。阶码E用移码表示,即阶码的真值都被加上一个常数(偏移量),规格化尾数用原码表示,隐藏小数点后最高位1
(4)定点数与浮点数的比较
①相同位数浮点数表示范围更大
②定点运算比浮点运算简单,相对电路设计与实现也简单
3.编码表示(解决正负号问题)
(1)机器数:数值在计算机内部编码表示的数
(2)机器数的特点:
①机器数是利用二进制数码来进行表示的
②机器数具有一定的范围,超过这个范围就会发生溢出,这是因为计算机字长有限
③机器数将其真值的符号数字化
④机器数依靠格式上的约定表示小数点的位置
(3)原码表示法:
①定点小数原码定义:当数值位为n位,符号位为1位时,有下式成立:
②定点小数原码的表示范围与表示个数:
[+0]原=0.00000…0,[-0]原=1.00000…0
最大值:1 - 2-n
最小值:-(1-2-n)
表示数的个数:2n+1-1
③定点整数原码的定义:当数值位为n位,符号位为1位时,有下式成立:
④定点整数原码的表示范围:
[+0]原=000…0,[-0]原=100…0
最大值:2n-1
最小值:-(2n-1)
表示数的个数:2n+1-1
(4)补码表示法
①模的概念:一个负数可用它的正补数来代替,而这个正补数可以用模加上负数本身求得;两个互为补数的数,它们绝对值之和即为模数;正数的补数即该正数本身。
②定点小数补码定义:
③定点小数补码表示的范围和个数
[+0]补=[-0]补=0.000…0(补码的0只有一种表示方法)
最大值:1 - 2-n
最小值:-1
表示数的个数:2n+1
④定点整数补码的定义:
定点整数补码的表示范围:
[+0]补=[-0]补=000…0(补码的0只有一种表示方法)
最大值:2n-1
最小值:- 2n
表示数的个数:2n+1
(5)反码表示法
①定点小数反码定义:
②定点小数反码表示的范围与所表示数的个数:
[+0]反=0.000…0,[-0]反=1.111…1
最大值:1 - 2-n
最小值:-(1-2-n)
表示数的个数:2n+1-1
③定点整数反码的定义:
(6) 移码表示法
①移码的定义:在真值上加一个常数2n:[x]移=2n+x (-2n ≤ x < 2n)
②移码运算注意的问题:移码就是在真值上加一个常数2n;移码表示中,0有唯一的编码:1000…00;同一个真值的移码和补码仅差一个符号位;移码常用于表示浮点数的阶码,所以只用于整数。
(7)无符号数:所有二进制位都用来表示数值,表示范围大于有符号数
(8)十进制数的二进制编码、逻辑数据、字符数据
有权码:8421码、5211码、2421码
无权码:余3码、格雷码
字符数据:ASCII字符编码表
3.数据校验
(1)奇偶校验
①构成规则:奇偶校验通常用来检验单个字符的错。即发送端在每个字符的最高位之后附加一位奇偶校验位。这个校验位可为“1”或“0”,以保证整个字符中“1”的个数是奇数(称奇校验)或偶数(称偶校验)
②校验位:如果发送端发送的字节为D8D7D6D5D4D3D2D1:
奇校验位: D校=D8⊕D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕1
偶校验位: D校=D8⊕D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1
③校验表达:接收方的校验表达式:
奇校验:F=D’8⊕D’7⊕D’6⊕D’5⊕D’4⊕D’3⊕D’2⊕D’1⊕D’校⊕1
偶校验:F=D’8⊕D’7⊕D’6⊕D’5⊕D’4⊕D’3⊕D’2⊕D’1⊕D’校
④电路:
(2)海明校验
①构成规则:
a.校验位的位数r与信息位的位数k的关系,按2-5式设计的海明码只能检测并纠正一位出错。应满足: 2r≥k+r+1
b.检验位P穿插的原则:第i位校验位占据第2i-1位的位置。即在海明码校验中,位号数(1,2,3, …,n)为2的权值的那些位,作为校验位,并记作P1,P2,P3,…Pr,余下各位则为有效信息位。
c.海明码的编排顺序:应使每位的位号等于参加校验它的校验位的位号之和。
d.校验位Pi的编码值:等于它所参与校验的各位信息位的异或值。校验位Pi与各位的关系。
②校验方法:(以四位为例)
异或值为0:无错;异或值为其他:某位出错。
(3)CRC循环冗余校验
①模二运算指以按位模2相加为基础的四则运算,运算时不考虑进位和借位。
模2加减:即按位加,可用异或逻辑实现。模2加与模2减的结果相同,即:0±0=0,0±1=1,1±0=1,1±1=0。
②CRC编码方法:
a.循环冗余校验码(CRC):由两部分组成的。左边为信息码,右边为校验码;若信息码占k位,则校验码就占n-k位。其中,n为整个循环冗余校验码的字长,故该校验码也称做(n,k)码。
b.生成校验位的方法
第一步:k位有效信息可以看成多项式:M(x)=Ck-1xk-1+ Ck-2xk-2+…+ C1x1+ C0x0
第二步:用有效信息的多项式M(x)左移r位,即M(x)•xr去模2除以发送和接收双方事先约定好的生成多项式G(x),得到的余数就作为校验的信息,放在信息位的后面。
第三步:
检错:接收方在收到CRC的编码后,用生成多项式G(x)去除。如果余数为零,则传送信息无误,根据下面的式子可以得到验证。
纠错:如果接收到的信息有错,那么余数不为零,但是它存在如下的特点:如果某一位出错,则余数不为0;对余数补0后继续除下去,将有一个现象发生。如果求出的余数不为0,一边对余数补0继续做模2除,同时让被检测的校验码字循环左移。
c.当任何一位误传时,都能使余数不为0;不同的位发生错误,应当使余数互不相同;对余数继续做模2除法,余数是循环的。