C语言编程,定点数的存储方式

2024-11-29 19:44:50
推荐回答(3个)
回答1:

  1. 定点数是计算机中采用的一种数的表示方法。参与运算的数的小数点位置固定不变。

  2. 定点数又分为定点整数和定点小数。

    定点整数
    小数点位固定在最后一位之后称为定点整数。若机器字长为n+1位,数值表示为:
    X=X0X1X2...Xn,其中Xi={0,1},0≤i≤n 即(-1)^X0 * (X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn)
    数值范围是 -(2^n-1)≤X≤2^n-1
    例如:1111表示-7。
    定点小数
    小数点固定在最高位之后称为定点小数。若机器字长为n+1位,数值表示为:
    X=X0.X1X2...Xn,其中Xi={0,1},0≤i≤n (这里X0不表示数字,只表示符号,若X0=0,则代表X=0.X1X2...Xn,X0=1,则代表-0.X1X2...Xn)。
    即X=X0.X1X2...Xn代表的小数为 (-1)^X0 * ((X1*2^(-1)) + X2*2^(-2) + ... + Xn-1*2^(-n+1) + Xn*2^(-n))
    数值范围是 -(1-2^(-n))≤X≤1-2^(-n)
    例如:1111表示-0.875

回答2:

float在32位下的存储方式为:
第1位:指数的符号位
第2~8位:指数位,用127余码表示
第9位:尾数符号位
第10~32位:尾数位

参见IEEE浮点数表示法

回答3:

定点数。常用的定点数有两种表示形式:
如果小数点位置约定在最低数值位的后面,则该数只能是定点整数;
如果小数点位置约定在最高数值位的前面,则该数只能是定点小数。
如果知道一个定点数的小数点位置约定和占用存储空间大小,那么很容易确定其表示数的范围。