问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

对于一个数,用浮点数格式表示,那尾数怎么计算

发布网友 发布时间:2022-04-22 14:02

我来回答

3个回答

热心网友 时间:2022-07-12 03:14

一个浮点数a由两个数m和e来表示:a = m × b^e。

在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...ddd的p位数(每一位是一个介于0到b-1之间的整数,包括0和b-1)。如果m的第一位是非0整数,m称作规格化的。

有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。

例如,一个指数范围为±4的4位十进制浮点数可以用来表示43210,4.321或0.0004321,但是没有足够的精度来表示432.123和43212.3(必须近似为432.1和43210)。当然,实际使用的位数通常远大于4。

扩展资料: 

浮点数并不一定等于小数,定点数也并不一定就是整数。

C++中的浮点数有6种,分别是:

float:单精度,32位

unsigned float:单精度无符号,32位

double:双精度,64位

long double:高双精度,80位

纯小数要想用二进制表示,必须先进行规格化,即化为 1.xxxxx * ( 2 ^ n ) 的形式(“^”代表乘方,2 ^ n表示2的n次方)。对于一个纯小数D,求n的公式如下:

n = 1 + log2(D); // 纯小数求得的n必为负数

再用 D / ( 2 ^ n ) 就可以得到规格化后的小数了。接下来就是十进制到二进制的转化问题,为了更好的理解,先来看一下10进制的纯小数是怎么表示的,假设有纯小数D,它小数点后的每一位数字按顺序形成一个数列:

{k1,k2,k3,...,kn}

那么D又可以这样表示:

D = k1 / (10 ^ 1 ) + k2 / (10 ^ 2 ) + k3 / (10 ^ 3 ) + ... + kn / (10 ^ n )

推广到二进制中,纯小数的表示法即为:

D = b1 / (2 ^ 1 ) + b2 / (2 ^ 2 ) + b3 / (2 ^ 3 ) + ... + bn / (2 ^ n )

参考资料来源:百度百科-浮点数    

热心网友 时间:2022-07-12 03:15

请耐心看完:
浮点数运算
   假定有两个浮点数 X=Mx * 2Ex , Y=My * 2Ey
(1)加减运算
实现X±Y运算,需要如下五步:
1.1 对阶操作,即比较两个浮点数的阶码值的大小.求△E=Ex-Ey。当其不等于零时,首先应使两个数取相同的阶码值。其实现方法是,将原来阶码小的数的尾数右移|△E|位,其阶码值加上|△E|,即每右移一次尾数要使阶码加1,则该浮点数的值不变(但精度变差了)。尾数右移时,对原码形式的尾数,符号位不参加移位,尾数高位补0;对补码形式的尾数,符号位要参加右移并使自己保持不变。为减少误差,可用另外的线路,保留右移过程中丢掉的一到几位的高位值,供以后舍入操作使用。
1.2 实现尾数的加(减)运算,对两个完成对阶后的浮点数执行求和(差)操作。
1.3 规格化处理,若得到的结果不满足规格化规则,就必须把它变成规格化的数,规格化处理规则如下:
 当结果尾数的两个符号位的值不同时,表明尾数运算结果溢出。此时应 使结果尾数右移一位,并使阶码的值加1,这被称为向右规格化,简称右规。
 当尾数的运算结果不溢出,但最高数值位与符号位同值,表明不满足规格化规则,此时应重复地使尾数左移、阶减减1,直到出现在最高数值位上的值与符号位的值不同为止,这是向左规格化的操作,简称左规。
1.4 舍入操作。在执行对阶或右规操作时,会使尾数低位上的一位或多位的数值被移掉,使数值的精度受到影响,可以把移掉的几个高位的值保存起来供舍入使用。舍入的总的原则是要有舍有入,而且尽量使舍和入的机会均等,以防止误差积累。常用的办法有"0"舍"1"入法,即移掉的最高位为1时 则在尾数末位加1;为0时则舍去移掉的数值。该方案的最大误差为2-(n+1)。这样做可能又使尾数溢出,此时就要再做一次右规。另一种方法 "置1"法,即右移时,丢掉移出的原低位上的值,并把结果的最低位置成1。该方案同样有使结果尾数变大或变小两种可能。即舍入前尾数最低位已为0,使其变1,对正数而言,其值变大,等于最低位入了个1。若尾数最低位已为1,则再对其置1无实际效用,等于舍掉了丢失的尾数低位值。
1.5 判结果的正确性,即检查阶码是否溢出。浮点数的溢出是以其阶码溢出表现出来的。在加减运算真正结束前,要检查是否产生了溢出,若阶码正常,加(减)运算正常结束;若阶码下溢,要置运算结果为浮点形式的机器零,若上溢,则置溢出标志。
例15:某浮点数阶码6位(含1位符号位:阶符),补码表示,尾数10位(含1位符号位,数符),补码表示, X=2010B * 0.11011011B, Y=2100B * (-0.10101100B),求 X+Y
解: 由已知条件,Ex=+010B,Mx = 0.11011011 B,
Ey=+100B,My =-0.10101100 B
对应补码分别为
[Ex]补=[+010B] 补=[+00010B] 补=000010B
[Mx]补= [+0.11011011 B]补=[0.110110110 B] 补=0, 110110110 B
[Ey]补=[+100B] 补=[+00100B] 补=000100B
[-Ey]补=111100B
[My]补= [-0.10101100 B]补=[-0.101011000 B] 补=1, 010101000 B
浮点表示分别为:
         数符   阶码    尾数数值
  [X]浮 = 0   000010    110110110
     [Y]浮 = 1   000100    010101000
 15_(1)对阶
    [△ E]补= [Ex]补+[-Ey]补= 00 00010B + 11 11100B = 11 11110B
△E =-00010B=-2,说明X的阶码小,应使Mx右移两位,Ex加2
所以修正[X]浮 = 0 000100 001101101 10
15_(2)尾数求和
     00 001101101 10
    + 11 010101000
     11 100010101 10
15_(3)尾数规格化
   尾数运算结果的符号位与最高数值位均为1,应执行左规处理,具体为:将尾数左移一位,符号位1位,结果为1000101011, 阶码减1变为000011。
  15_(4)尾数移出位的舍入处理
  左规已将对阶移出的1位有效1移入,尾数不用做舍入处理。
  15_(5)判溢出,写结果
  尾数已规格化且阶码符号位为00,没有溢出,最终结果为
[Ex+y]补=000011 Ex+y=+00011B
[Mx+y]补=1000101011 Mx+y=-0.111010101B
所以,X+Y = 2+0011B *(-0.111010101B)
(2)乘法运算
实现X*Y运算,需要如下三步:
2.1 尾数相乘(两个定点小数相乘)
2.2 阶码求和
2.3 结果左规、舍入
例16:某浮点数阶码3位(含1位符号位:阶符),补码表示,尾数3位(含1位符号位,数符),原码表示, X=210B * 0.1101B, Y=2-01B * (-0.1011B),求 X*Y
解:由已知条件,Ex=+10B,Mx = 0.1101 B,
Ey=-01B,My =-0.1011 B
对应机器数分别为:
[Ex]补=[+10B]补=010B
[Mx]原= [+0.1101 B]原=0, 1101 B
[Ey]补=[-01B]补=111B
[My]原= [-0.1011B]原=1, 1011B
机内浮点表示分别为:
         数符   阶码   尾数数值
  [X]浮 = 0    010   1101
     [Y]浮 = 1    111   1011
 16_(1)尾数相乘(Mx* My)
    1.1 [ | Mx | ]原= [+0.1101 B]原=0, 1101 B
[|My | ]原= [+0.1011B]原=0, 1011B
1.2 高 位 积 乘数/低位积
Y0
00 0000 1 0 1 1
+[ Y0*|X| ]补 00 1101
00 1101
右移 00 0110 1 1 0 1
+[ Y0*|X| ]补 00 1101
01 0011
右移 00 1001 1 1 1 0
+[ Y0*|X| ]补 00 0000
00 1001
右移 00 0100 1 1 1 1
+[ Y0*|X| ]补 00 1101
01 0001
右移 00 1000 1 1 1 1
1.3 [Mx * My] 符号=[ Mx ]符号⊕[My]符号=0⊕1=1
1.4 [Mx * My] 原=1,100011110B
16_(2)阶码求和
     00 10
    + 11 11
     00 01
16_(3)结果左规、舍入
   尾数已为规格化形式,由于数值部分职能保存4位,需对小数点后第5位进行0设1入,最终尾数原码为1,1001B
最终运算结果为:1 001 1001
所以,X*Y = 2+01B *(-0.1001B)
(3)除法运算
实现X/Y运算,需要如下三步:
3.1 尾数相除(两个定点小数相除)
3.2 阶码相减
3.3 结果规格化及舍入
例17:某浮点数阶码3位(含1位符号位:阶符),补码表示,尾数3位(含1位符号位,数符),原码表示, X=210B * 0.0011B, Y=2-01B * 0.1011B,求 X/Y
解:由已知条件,Ex=+10B,Mx = 0.0011 B,
Ey=-01B,My =-0.1011 B
对应机器数分别为
[Ex]补=[+10B]补=010B
[Mx]原= [+0.0011 B]原=0, 0011B
[Ey]补=[-01B]补=111B
[My]原= [-0.1011B]原=1, 1011B
机内浮点表示分别为:
         数符   阶码   尾数数值
  [X]浮 = 0    010   0011
     [Y]浮 = 1    111   1011
 17_(1)尾数相除(Mx/ My)
    1.1 [ | Mx | ]原= [+0.00110000 B]原=0, 00110000 B
[|My | ]原= [+0.1011B]原=0, 1011B
[-|My | ]补= 1, 0101B
1.2 被除数高位/余数 被除数低位/商
00 0011 00000
+[-|My |]补 11 0101
11 1100 00000
左移 11 1000 00000
+[ |My |]补 00 1011
00 0011 00001
左移 00 0110 00010
+[-|My |]补 11 0101
11 1011 00010
左移 11 0110 00100
+[|My |]补 00 1011
00 0001 00101
左移 00 0010 01010
+[-|My |]补 11 0101
11 0111 01010
+[|My |]补 00 1011
00 0010
1.3 [Mx /My] 商符号=[ Mx ]符号⊕[My]符号=0⊕0=0
1.4 [Mx / My] 商原=0,1010B
17_(2)阶码相减
[-Ey]补=[+01B]补=001B
     00 10
    + 00 01
     00 11
17_(3)结果规格化、舍入
   尾数已为规格化形式,余数过小,结果也不必舍入,
最终运算结果为:0 011 1010
所以,X*Y = 2+11B *(+0.1010B)

参考资料:百度文库

热心网友 时间:2022-07-12 03:15

你说的是CPU计算浮点的过程?如果是的话,我不记得了,这是计算机组成原理的知识。

如果不是的话,那你说的是什么?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
注册保险代理有限公司需要什么资料! 现在什么云手机性价比高一点? 50个可接双宾语的动词 为琵琶独奏曲《春江花月夜》配一首词或诗 我经常看到HI语音里会有什么魅力榜、贡献榜这些排名,我也一直在语音直播... 跨行通怎么激活 父母是农民不知道有没有纳税 普通农民可以算纳税人吗? 农民不交农业税了,是不是纳税人? 小红书上女生缺衣服穿的心情说说四十句 狗狗有挺多牙垢,要怎么清理啊? 单精度浮点数的格式 梦见自己的左边上门牙掉了的预兆 谁能告诉我,浮点数的阶码 和尾码 具体是什么原理,有些迷惑~ 谢谢了~ 什么是浮点数啊? 计算机中定点和浮点表示,简单点 举例说明,谢谢 母亲在妊娠之初易引发妊娠期牙龈炎,病因有哪些? 二进制的浮点表示法是怎么表 浮点数在内存中的表示方法 孕妇梦见自己牙齿的污垢掉的满嘴都是 浮点表示法用阶码和尾数表示数 梦见自己刷了牙却还有许多牙垢的预兆 计算机中的浮点数是什么? c语言里面的浮点数的表示方法有几种?都是什么啊 浮点型数据可以用什么形式表示 浮点数在计算机中是如何表示的? 浮点数表示方法是什么? 浮点数表示格式? 浮点数格式是什么? 浮点型数据的表示方法 怎样用简单的方法去除牙垢? 贷款利息天数的计算,怎么算天数? 银行计利息是每天的几点? 什么叫计算借款利息时天数算头不算尾? 银行存款一天中在什么时间结算利息.例如今天下午4点 怎样计算银行利息 三星手机怎样清理系统中的文件? 老鼠粘粘到塑料上怎么去除 老鼠粘粘在被子上怎样洗掉 老鼠粘粘到衣服怎么办 我买的老鼠粘怎么粘不住老鼠啊? 老鼠粘有毒吗 投资和理财的区别是什么? 投资理财是什么? 什么是投资理财?有什么好处? 什么是投资理财?有怎样理财好呢? 什么是投资理财,怎样投资理财? 投资理财是什么,有没有人在做理财的 如何在自己手机上看自己手机号 投资与理财在哪个区,求解