A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天涯莫名 中级黑马   /  2015-9-25 21:37  /  651 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数值型数据由数字组成,表示数量,用于算术操作中。
3.5.1 定点数和浮点数的概念
    在计算机中,数值型的数据有两种表示方法,一种叫做定点数,另一种叫做浮点数。
    所谓定点数,就是在计算机中所有数的小数点位置固定不变。定点数有两种:定点小数和定点整数。定点小数将小数点固定在最高数据位的左边,因此,它只能表示 小于1的纯小数。定点整数将小数点固定在最低数据位的右边,因此定点整数表示的也只是纯整数。由此可见,定点数表示数的范围较小。
    为了扩大计算机中数值数据的表示范围,我们将12.34表示为0.1234×102,其中0.1234叫做尾数,10叫做基数,可以在计算机内固定下来。 2叫做阶码,若阶码的大小发生变化,则意味着实际数据小数点的移动,我们把这种数据叫做浮点数。由于基数在计算机中固定不变,因此,我们可以用两个定点数 分别表示尾数和阶码,从而表示这个浮点数。其中,尾数用定点小数表示,阶码用定点整数表示。
    在计算机中,无论是定点数还是浮点数,都有正负之分。在表示数据时,专门有1位或2位表示符号,对单符号位来讲,通常用“1”表示负号;用“0”表示正号。对双符号位而言,则用“11”表示负号;“00”表示正号。通常情况下,符号位都处于数据的最高位。
3.5.2 定点数的表示
    一个定点数,在计算机中可用不同的码制来表示,常用的码制有原码、反码和补码三种。不论用什么码制来表示,数据本身的值并不发生变化,数据本身所代表的值叫做真值。下面,我们就来讨论这三种码制的表示方法。
    1. 原码
    原码的表示方法为:如果真值是正数,则最高位为0,其它位保持不变;如果真值是负数,则最高位为1,其它位保持不变。
   【例1】写出13和 –13的原码(取8位码长)
    解:因为13=(1101)2,所以13的原码是00001101,-13的原码是10001101。
    采用原码,优点是转换非常简单,只要根据正负号将最高位置0或1即可。但原码表示在进行加减运算时很不方便,符号位不能参与运算,并且0的原码有两种表示方法:+0的原码是00000000,-0的原码是10000000。
    2. 反码
    反码的表示方法为:如果真值是正数,则最高位为0,其它位保持不变;如果真值是负数,则最高位为1,其它位按位求反。
    【例2】写出13和 –13的反码(取8位码长)
    解:因为13=(1101)2,所以 13的反码是00001101,-13的反码是11110010。
    反码跟原码相比较,符号位虽然可以作为数值参与运算,但计算完后,仍需要根据符号位进行调整。另外0的反码同样也有两种表示方法:+0的反码是00000000,-0的反码是11111111。
    为了克服原码和反码的上述缺点,人们又引进了补码表示法。补码的作用在于能把减法运算化成加法运算,现代计算机中一般采用补码来表示定点数。
    3. 补码
   补码的表示方法为:若真值是正数,则最高位为0,其它位保持不变;若真值是负数,则最高位为1,其它位按位求反后再加1。
  【例3】写出13和 –13的补码(取8位码长)
    解:因为13=(1101)2,所以 13的补码是00001101,-13的补码是11110011。
   补码的符号可以作为数值参与运算,且计算完后,不需要根据符号位进行调整。另外,0的补码表示方法也是唯一的,即00000000。
3.5.3 浮点数的表示方法
    浮点数表示法类似于科学计数法,任一数均可通过改变其指数部分,使小数点发生移动,如数23.45可以表示为:101×2.345、 102×0.2345、103×0.02345等各种不同形式。浮点数的一般表示形式为: N=2E ×D,其中,D称为尾数, E称为阶码。如图3.1所示,为浮点数的一般形式。
file:///C:/Users/LRF/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif
图3.1 浮点数的一般形式
    对于不同的机器,阶码和尾数各占多少位,分别用什么码制进行表示都有具体规定。在实际应用中,浮点数的表示首先要进行规格化,即转换成一个纯小数与2m之积,并且小数点后的第一位是1。
    【例4】写出浮点数(-101.11101)2的机内表示(阶码用4位原码表示,尾数用8位补码表示,阶码在尾数之前)
    解:(-101.11101)2=(-0.10111101)2×23
    阶码为3,用原码表示为 0011
    尾数为-0.10111101,用补码表示为1.01000011
    因此,该数在计算机内表示为:00111.01000011

1 个回复

正序浏览
zhonggege1234 来自手机 中级黑马 2015-9-25 21:43:42
沙发
很好,辛苦了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马