zoukankan      html  css  js  c++  java
  • 计算机中数的表示

    1.计算机中数据的表示

    在计算机中只能用数字化信息来表示数的正、负,人们规定用“0”表示正号,用“1”表示负号。例如,在机器中用8位二进制表示一个数+90,其格式为:

    0

    1

    0

    1

    1

    0

    1

    0

                                                                                         

                                                                        符号位,0表示正

    而用8位二进制表示一个数-89,其格式为:

    1

    1

    0

    1

    1

    0

    0

    1

                                                                    

                                                                             符号位,1表示负

    在计算机内部,数字和符号都用二进制码表示,两者合在一起构成数的机内表示形式,称为机器数,而它真正表示的数值称为这个机器数的真值

    2.定点数和浮点数

    (1)       机器数表示的数的范围受设备限制

    在计算机中,一般用若干个二进制位表示一个数或一条指令,把它们作为一个整体来处理、存储和传送。这种作为一个整体来处理的二进制位串,称为计算机字。表示数据的字称为数据字,表示指令的字称为指令字。

    计算机是以字为单位进行处理、存储和传送的,所以运算器中的加法器、累加器以及其他一些寄存器,都选择与字长相同位数。字长一定,则计算机数据字所能表示的数的范围也就确定了。

    例如使用8位字长计算机,它可表示无符号整数的最大值是(255)10=(11111111)2。运算时,若数值超出机器数所能表示的范围,就会停止运算和处理,这种现象称为溢出

    (2)       定点数与浮点数

    计算机中运算的数,有整数,也有小数,如何确定小数点的位置呢?通常有两种约定:一种是规定小数点的位置固定不变,这时机器数称为定点数。另一种是小数点的位置可以浮动的,这时的机器数称为浮点数。微型机多选用定点数。

    数的定点表示是指数据字中的小数点的位置是固定不变的。小数点位置可以固定在符号位之后,这时,数据字就表示一个纯小数。假定机器字长为16位,符号位占1位,数值部分占15位,故下面机器数其等效的十进制数为:-2-15   

     

    1

    000000000000001

                                                                                                                 ·                    

                                                                                                符号位   ↑小数点      数值部分                               

    如果把小数点位置固定在数据字的最后,这时,数据字就表示一个纯整数。假设机器字长为16位,符号占一位,数值部分占15位,故下面机器数其等效的十进制数为+32767。

                        

    0

    111111111111111

                                                                                                                                                             ·

                                                                                                 符号位            数值部分                      ↑小数点   

    定点表示法所能表示的数值范围很有限,为了扩大定点数的表示范围,可以通过编程技术,采用多个字节来表示一个定点数,例如,采用4个字节或8个字节等。

    (3)       浮点数

    浮点表示法就是小数点在数中的位置是浮动的。在以数值计算为主要任务的计算机中,由于定点表示法所能表示的数的范围太窄,不能满足计算问题的需要,因此就要采用浮点表示法。在同样字长的情况下,浮点表示法能表示的数的范围扩大了。

    计算机中的浮点表示法包括两个部分:一部分是阶码(表示指数,记作E);另一部分是尾数(表示有效数字,记作M)。设任意一数N可以表示为:N=2EM

    其中2为基数,E为阶码,M为尾数。浮点数在机器中的表示方法如下

    阶符

    E

    数符

    M

                                                                           阶码部分                                     · 尾数部分

    由尾数部分隐含的小数点位置可知,尾数总是小于1的数字,它给出该浮点数的有效数字。尾数部分的符号位确定该浮点数的正负。阶码给出的总是整数,它确定小数点浮动的位数,若阶符为正,则向右移动;若阶符为负,则向左移动。

    假设机器字长为32位,阶码8位,尾数24位:

    阶符

    E

    数符

    M

                                                                                              ·

                                                                                           1位               7位                      1位                 23位

    其中左边1位表示阶码的符号,符号位后的7位表示阶码的大小。后24位中,有一位表示尾数的符号,其余23位表示尾数的大小。浮点数表示法对尾数有如下规定:

        1/2≤M<1      即要求尾数中第1位数不为零,这样的浮点数称为规格化数。

    当浮点数的尾数为零或者阶码为最小值时,机器通常规定,把该数看作零,称为机器零在浮点数表示和运算中,当一个数的阶码大于机器所能表示的最大码时,产生“上溢”。上溢时机器一般不再继续运算而转入“溢出”处理。当一个数的阶码小于机器所能代表的最小阶码时产生“下溢”,下溢时一般当作机器零来处理。

  • 相关阅读:
    浅入浅出EmguCv(一)OpenCv与EmguCv
    Selenium2入门(三)WebDriver API之Get
    Selenium2入门(二)WebDriver
    Selenium2入门(一)简介
    Tomcat部署Solr4.10.4
    On the Optimal Approach of Survivable Virtual Network Embedding in Virtualized SDN
    几篇虚拟映射文章粗读
    SDN网络虚拟化中有效协调的映射算法
    SDN网络中hypervisor带来的控制器时延(Hypervisor位置的优化)
    FlowerVisor理解
  • 原文地址:https://www.cnblogs.com/smwikipedia/p/1352952.html
Copyright © 2011-2022 走看看