发布网友 发布时间:2022-05-02 17:22
共2个回答
热心网友 时间:2022-06-21 01:06
浮点数可以表示-∞到+∞,这只是一种特殊情况,显然不是我们想要的数值范围。
以32位单精度浮点数为例,阶码E由8位表示,取值范围为0-255,去除0和255这两种特殊情况,那么指数e的取值范围就是1-127=-126到254-127=127。
(1)最大正数
因此单精度浮点数最大正数值的符号位S=0,阶码E=254,指数e=254-127=127,尾数M=111 1111 1111 1111 1111 1111,其机器码为:0 11111110 111 1111 1111 1111 1111 1111。
那么最大正数值:
PosMax=(−1)S×1.M×2e=+(1.11111111111111111111111)×2127≈3.402823e+38。
这是一个很大的数。
(2)最小正数
最小正数符号位S=0,阶码E=1,指数e=1-127=-126,尾数M=0,其机器码为0 00000001 000 0000 0000 0000 0000 0000。
那么最小正数为: PosMin=(1)S×1.M×2e=+(1.0)×2126≈1.175494e38。
这是一个相当小的数。几乎可以近似等于0。当阶码E=0,指数为-127时,IEEE754就是这么规定1.0×2−127近似为0的,事实上,它并不等于0。
(3)最大负数
最大负数符号位S=1,阶码E=1,指数e=1-127==-126,尾数M=0,机器码与最小正数的符号位相反,其他均相同,为:1 00000001 000 0000 0000 0000 0000 0000。
最大负数等于: NegMax=(−1)S×1.M×2e=−(1.0)×2−126≈−1.175494e−38。
(4)最小负数
符号位S=0,阶码E=254,指数e=254-127=127,尾数M=111 1111 1111 1111 1111 1111,其机器码为:1 11111110 111 1111 1111 1111 1111 1111。
扩展资料
一个浮点数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是指数。
完成浮点加减运算的操作过程大体分为四步:
1、0 操作数的检查;
2、比较阶码大小并完成对阶;
3、尾数进行加或减运算;
4、结果规格化并进行舍入处理。
热心网友 时间:2022-06-21 01:06
浮点数在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。