一、首先来说明一些定点机器数的表示方法
1、原码的数学定义
整数:
小数:
说明:1、这里的n是代表原码的整数的位数
2、这里的2的n次方是按照机器数来定义的,比如2的0次方就是0001,2的1次方就是0010,2的三次方就是1000
举个例子来理解:
1、X=+1001,这里x是有四位,所以n=4;按照定义式,这里的的原码是等于原来的的真值,也就是 1001;
2、那如果是Y=-1001,那这个原码就是 2的n次方-Y=也就是1 0000-(-1001)=1
1001,这里要注意的是,这里的2的次方不是我们常规理解的十进制的次方,而是机器数的次方,也就是位数对应的权值。
2、反码的数学定义
整数:
小数:
这里的理解,如果你能理解原码的定义,那么反码的定义其实也是一样的
还是说一下:这里的2的n次方是对应机器数位数的权值,不是十进制里面的理解。
那么这里直接举例子了:
1、 X=1001,X的反码就是他的原码
2、 Y=-1001,按照定义,Y的反码=2的五次方-1-1001=100000-1+(-1001)=1 0110
那么对于移码和补码,这里我就只给出定义式,理解都是按照上面的来理解的咧
3、补码的数学定义
整数:
小数:
4、移码的数学定义
这里说明一下,移码一般是用来做浮点数的阶码,所以一般都是没有小数的移码的,所以这里只有给出整数的移码的数学定义表示