一、数据格式
1.定点数的表示方法
所谓顶点定点格式,即约定计算机机器中所有数据的小数点位置是固定不变的。由于约定在固定位置,小数点是就不在再使用记号“.”来表示。原理上讲,小数点位置固定在哪一位都可以,但是通常将数据表示成纯小数或纯整数。
如果数x表示纯小数,那么小数点位于和之间;如果数x表示纯整数,那么小数点位于最低位的右边。
2.浮点数的表示方法
任意一个十进制数N可以写成
同样,在计算机中一个任意二进制数N可以写成
其中M称为浮点数的尾数,是一个纯小数。e是比例因子的指数,称为浮点数的指数,是一个整数。
在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示(规格化小数)。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。
浮点的规格化表示:为了提高数据的表示精度,当尾数的值不为0时,尾数域的最高有效位应为1,例:0.11
二、数的机器码表示
原码表示法
对于正数x=+1001,则对应原码为01001;对于负数x=-1001,对应原码为11001。
反码表示法
符号位不变,尾数位正数相同,负数取反;
对于正数x=+1001,则对应反码为01001;对于负数x=-1001,对应反码为10110。
补码表示法
符号位不变,尾数位按位取反,末位加1;
对于正数x=+1001,则对应补码为01001;对于负数x=-1001,对应补码为=10111。
总结:一个正整数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数位值都相同,即三种表示方法都一样;一个负整数,当用原码、反码、补码表示时,符号位都固定为1,用二进制表示的数位值都不相同。
原码->反码:原码符号位为1不变,整数的每一位二进制数位求反得到反码。
反码->补码:反码符号位为1不变,反码数值位最低位加1,得到补码。
移码表示法
将补码的符号位取反;主要用于表示浮点数的阶码。
对于正数x=+1001,则对应移码为11001;对于负数x=-1001,对应移码为00111。
IEEE754标准表示浮点数
在32位的浮点数中,S占用1位,M占用23位,小数点位置放在尾数域最左(最高)有效位的右边。E占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数;在64位的浮点数中,S占用1位,M占用52位,E占用11位。
尾数域所表示的值是1.M。由于规格化的浮点数的尾数域的最左位总是1,故这一位无需存储,而认为隐藏在小数点的左边。于是用23位字段可以存储24位有效数。(提高了数的精度)
一个规格化的32位浮点数x的真值表示为: