• 定点数和浮点数


    定点数

    小数位固定不变的数叫做定点数

    定点数有三种类型

    (1)无符号定点整数(Unsigned fixed point integer)

    定义:无符号定点整数没有符号位,所以它的全部数位都用来表示数字,且它的小数点隐含在最低位后,在数码序列中并不存在。

    对于某种数的表示方式,我们关心两点:

    • 1.表示范围:这种方法表示数的大小(正负方向),无符号定点整数范围:0~2n-1
    • 2.分辨率:精度,1(即最小非零正数)

    代码序列:XnXn-1...X1X0表示无符号定点整数,则有n+1位正整数

    典型值 真值 代码序列
    最大正整数 2n+1-1 11...11
    最小非零正数 1 00...01

    (2)带符号定点整数

    定义;带符号定点整数是纯整数,小数点在最低位之后,最高位为符号位。常用补码表示,也用原码表示。

    代码序列:XnXn-1...X1X0表示带符号定点整数,Xn是符号位

    原码定点整数表示范围:-(2n-1)~(2n-1)

    补码定点整数表示范围:-2n~(2n-1)

    源码,补码定点整数分辨率:1

    (3)带符号定点小数

    定义:带符号定点小数是纯小数,

    代码序列:X0.X1...Xn

    最高位X0是符号位,小数点位置在符号位之后,X1...Xn是数值的有效部分,常称尾数,X1称为最高数位或最高有效位

    原码定点小数表示范围:-(1-2-n)~(1-2-n)

    补码定点小数表示范围:-1~(1-2-n)

    分辨率:2-n

    定点小数的位置是固定的,不需要我们专门设置,在实际中并不存在。

    浮点数

    定义:是一种小数点位置不固定可随需要浮动的数

    (1)浮点数表示

    N=REx M

    Ef E1 ... Em Mf M1 M2 ... Mn

     

    阶码E,Ef为阶符

    尾数M,Mf为数符

     

    对尾数的规格化要求

    若以R=2为基底

    浮点数用原码表示,则需要:1/2 <= |M| < 1,此时最高有效位始终为1;

    浮点数用补码表示,则需要:-1<= M < -1/2或1/2<=M<1,前者最高有效位为1,后者为0

    对于正数,规格化特征是M1=1

    (2)移码(增码)

    移码的数值表示就是补码的符号位变反了。

     

    例题:某浮点数如上面的浮点数的表示,字长32位阶码8位,含1位阶符,补码表示以2为;尾数24位,含一位数符,补码表示,规格化。若浮点数代码为(A3680000)16,求真值N

    (A3680000)16=(10100011,01101000...0)2

    阶码长度为8位,4位二进制表示1位十六进制,总共两位十六进制,因此A3表示阶码,第一位表示符号位,1为负数

    因为阶码是补码表示,所以我们需要转换为原码

    E=-(1011101)2 =-(93)10

    M=(0.1101000..0)2=(0.8125)10

    N=2-93x0.8125

     

    将-(1011.11010...0)2写成浮点数代码F

    N=-(1011.11010...0)2

    =-(0.101111010...0)2x24

    E=(4)10=(00000100)2

    M=(1.010000110...0)2

    所以F=(00000100,1010000110...0)2=(04A18000)16

    (5)IEEE754标准浮点格式

    规格化要求:0<=|M|<1

     

    例题:将十进制数20.59375转换成符合IEEE754格式的32位短浮点数,写出其二进制代码,并转换成十六进制代码

    1.分别转换整数部分和小数部分为二进制20.59375=10100.10011

    2.移动小数,使其在第一位与第二位之间

    10100.10011=1.010010011x24

    得到阶码:E=4

    3.尾数符号位为正数,即0    阶码表示成移码:E=4+127=131=1000 0011

    尾数M=0 1001 0011

    4.所以F=(0100 0001 1010 0100 1100 0000 0000 0000 )2

    =(41A4C000)16

     

     

  • 相关阅读:
    hdu 4107 Gangster 线段树(成段更新)
    hdu 3037 Saving Beans (lucas定理)
    hdu 3944 DP? (Lucas 定理)
    hdu 5038 Grade 水
    ASP.NET Core 配置 MVC
    ASP.NET Core 静态文件
    ASP.NET Core 异常和错误处理
    ASP.NET Core 中间件
    ASP.NET Core 项目配置 ( Startup )
    ASP.NET Core 基本项目目录结构
  • 原文地址:https://www.cnblogs.com/Mayfly-nymph/p/11090241.html
Copyright © 2020-2023  润新知