计算机组成原理-day2

今天是2021-3-2。

一。原码、反码、补码

对于二进制数来说,基本规则如下:
加运算:0+0=0,0+1=1,1+0=1,1+1=10,(逢2进1);
减运算:1-1=0,1-0=1,0-0=0,0-1=1,(向高位借1当2);
原码
一个数字,包括它的符号,都用二进制来表示就是原码,正数符号位为0,负数符号位为1。比如8的原码就是0000 0100。
加法规则:先判断符号位,若相同,则绝对值相加,结果符号位不变;若不同,则做减法,绝对值大的数减去绝对值小的数,结果符号位与绝对值大的数相同
减法规则:减数符号取反,然后按加法规则进行计算
反码
正数的反码与其原码一致,负数的反码,由负数的原码除符号位按位取反得到。比如110101的反码就是101010
反码的加法:如果最终产生进位,则拿掉进位数,再用拿掉后的数+进位数。比如,加法结果为1,1100,那么就需要1100+1,最终得到1101
反码的减法:将减数包括符号位按位取反,然后变为加法运算。比如1+(-1)
补码
正数的补码与其原码一致。负数的补码在其反码的基础上加一
补码的加法:符号位也要参与运算,产生的进位数要丢掉
补码的减法:将减数包括符号位按位取反并+1,然后变为加法运算
移码
移码可以参照补码,对于一个数的移码,只需要将其补码的符号位取反即可

二。符号位扩展

对于正数,新表示形式的所有附加位都用0进行填充
对于负数

  1. 符号位保持不变,原码的所有附加位都用0进行填充
  2. 符号位保持不变,反码的所有附加位都用1进行填充
  3. 符号位保持不变,补码的所有附加位都用1(对于整数)或0(对于小数)进行填充

三。浮点数

基本概念

  1. 是一种将数的范围和精度分开表示的方法
  2. 由阶码–表示数据的范围和尾数–表示数据的精度组成。阶码的位数越大,浮点数可以表示的范围也越大,但是同时尾数的位数就少了,精度就会降低

IEEE754格式.
由符号位S+阶码E+尾数M组成
3. 单精度32位:1位符号位+8位阶码+23位尾数
4. 双精度64位:1位符号位+11位阶码+32位尾数
单精度IEE754格式转为十进制浮点数N:
1.从32位二进制数中分离出S、E、M
2.e=E-127
3.N=(-1)的s次方x2的e次方x1.M
十进制浮点数N转为单精度IEE754格式:
1.N=(-1)的s次方x2的e次方x1.M,将N展开为该公式
2.E=e+127
3.按S、E、M的顺序组成32位的单精度IEE754格式

四。校验码

在被校验的数据中增加一些冗余码(校验位),使数据按某种规则编码以后,具有发现错误或同时具备指出错误的位置并能自动纠正错误的能力的一种编码
码距:
一组编码中任意两个编码之间不同位数的最小值称为码距
奇/偶校验:
假设现在我们的数字由k位有效数字和1位校验位组成,通过设置校验位的值位0或1,使k+1位二进制数中1的个数为奇数或者偶数,即为奇/偶校验
循环冗余校验
由k位有效数字+r位校验位,r>log2(k)组成
计算规范:CRC=有效数字2的r次方+有效数字2的r次方/生成多项式
海明校验
由k位有效数字+r位校验位,k+r<2的r次方-1
计算规范:CRC=有效数字2的r次方+有效数字2的r次方/生成多项式

猜你喜欢

转载自blog.csdn.net/qq_44727091/article/details/114278177