首页 > 编程知识 正文

计算机中浮点数的表示形式,什么是定点数和浮点数

时间:2023-05-06 01:51:00 阅读:26743 作者:955

文章目录序言一、计算机中整数的表现1 .原码2 .转码3 .反码4 .补码2、计算机中固定点数的表现3、计算机中浮点数的表现1. IEEE754标准中浮点数的表现2 .正规化16位浮点数的表现总结

前言这一部分的内容由老师来说明,所以对这一部分的内容进行总结。

另一方面,计算机中整数显示1 .源代码的显示非常简单,其中一比特已编码比特与整数比特被表示为数字比特,其中已编码比特为1时表示负数,而0时表示正数。

2 .转码是指原本显示的数值加上偏移常数后的数,通常加上编码位数的最高位2^(n-1 )或2^(n-1 )-1。 转码显示的好处是可以将负数转换为正数,这样0表示就不唯一了,而且容易比较两个数的大小。

3 .反码反码是指将原本为负数的原码除符号位外全部反码。 下图:

反码优点不明显,所以不常用。

4 .补数补数是模式减去负数的绝对值,在二进制中表示为各位取反末位加1。 2数的减法可以用被减数加上减数的补数来代替,所以补数的优点很明显。

从图中可以看出,在1 n位的二进制数中,能够表现的最大正数为2^n-1,最大负数为- 2 ^n。

由于补数表示的溢出,这里可能有点不太清楚,其实补数的符号位,即模式位是原补数的位加1,可以用变形补数制作出好的hpdlm,如下图所示。

二、计算机定数点显示计算机定数点显示与整数显示形式基本一致的,只是中间小数点多,目前给出了1 15位纯小数各显示方式的最大值和最小值。

可见补数和反转表示的最小值相同。 这种情况下,可以用变形补数进行说明。

这样不是非常清楚了吗?

需要特别注意的是,补数表示的最小数,正是因为溢出才表示为变形补数,在计算时,必须在各位取反末位之后将假码位作为数值进行计数,才能得到真值。

三、计算机浮点数的显示自从知道了前面固定点数和整数的显示后,对浮点数的显示有了很好的理解。

浮点数字由编码位、阶代码和尾数表示,为了比较数值的大小,阶代码通常由移动代码表示。

1. IEEE754标准中浮点数的浮点数表示的范围(非IEEE754标准) :

如果有基数或底数的概念,它通常为2/4/8/16,不影响浮点数的表示。

为了统一浮点数表示的规格,发表了IEEE754标准。

IEEE754标准规定,步进码的偏移常数为32位下127,64位下1023。 这样规定的好处是,浮点表示的范围扩大到32位以下(-127~126 )、64位以下(-10231022 )。 尾数中隐式显示1位。 例如,1.011111的尾数是011117个0。

IEEE754标准将步骤代码和尾数都显示为0的数字表示为0;

步进码为0、尾数不为0的数是非正规化数;

步进码为1、尾数为0的数为无限,通过编码比特区分正负;

阶数代码为1而不是0的数表示为非数值(NaN(notanumber ) ),这在JavaScript编码中很常用。

2 .规范化的16位浮点表示由e步码(转码表示) s符号位m尾数(补码表示)组成,通常有ESM、SEM两种表示形式,其中步码为6位,尾数为9位。

这里表示的是阶码6位、尾数10位(补数)的显示范围。

最小数量: 111111 1 000000000,尾数为1补码表示,阶码(63-32 )=31,结果为-2^31;

最大负数: 000000 1 011111111,尾数为2^-1 2^-9的补数,表示阶码为-32,结果为-(2^-1 2^-9 ) * 2^-32;

最小正数: 000000 0 100000000,尾数为2^-1,二维码为-32,结果为2 ^-1 *2^-32;

最大数量: 1111101111111,尾数1-2^-9,二维码31,结果为(1-2^-9 )2 ^31。

我大致整理了一下值得关注的内容。 如果有错误的话请指出来。 以上。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。