求助ieee754浮点数的问题

求助一下这个教程里面提到的分辨率的数字转换的问题。www点3dmgame点com/faq/201509/3520810点html这个网址提到进入babbage点cs点qc... 求助一下这个教程里面提到的分辨率的数字转换的问题。
www点3dmgame点com/faq/201509/3520810点html这个网址提到进入
babbage点cs点qc点cuny点edu/IEEE-754/里面,
如 Value to analyze:的框中输入1920/1080 稍等在下面的Binary32: 得到”3FE38E39“的代码
但是按照要求输入我需要的3840/1080,并不能显示代码
后下载浮点数转换器,输入3840/1080不能得到正确代码,由于并不懂正确输入方法,可能XX数值/XX数值的输入方法不对,求帮按照教程中描述的,3840/1080得到的是什么呢?
展开
 我来答
pardream941026
2018-01-09 · TA获得超过8219个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1371万
展开全部

你说的这网址我打不开。刚巧我回答了另一个人的浮点数的问题:网页链接,你看一下

下面进行计算,先计算:1920/1080=1.777777777777778
转换为2进制数:1.110001110001110001110001,小数点左侧只有1,所以指数=0
转换过程:
n      1/2^n                           n位上的2进制值
1      0.500000000000000000000000000   1
2      0.250000000000000000000000000   1
3      0.125000000000000000000000000   0
4      0.062500000000000000000000000   0
5      0.031250000000000000000000000   0
6      0.015625000000000000000000000   1
7      0.007812500000000000000000000   1
8      0.003906250000000000000000000   1
9      0.001953125000000000000000000   0
10     0.000976562500000000000000000   0
11     0.000488281250000000000000000   0
12     0.000244140625000000000000000   1
13     0.000122070312500000000000000   1
14     0.000061035156250000000000000   1
15     0.000030517578125000000000000   0
16     0.000015258789062500000000000   0
17     0.000007629394531250000000000   0
18     0.000003814697265625000000000   1
19     0.000001907348632812500000000   1
20     0.000000953674316406250000000   1
21     0.000000476837158203125000000   0
22     0.000000238418579101562500000   0
23     0.000000119209289550781250000   0
24     0.000000059604644775390625000   1 ---取前23位

所以浮点数就是:0 01111111 11000111000111000111000 ,化为16进制:3FE38E38
最后有个1的差异,是计算机精度的缘故。如果把第24位舍入到23位,就和你在那个网站上计算得结果一样了。
反向验算:1.7777776718139648,与原数对比,第7位开始,已经不准确了。

同理,3840/1080=3.5555555555555555555555555555556
化为2进制:11.1000111000111000111000111000B,左移1位,1.11000111000111000111000111000,指数是1
 1     0.500000000000000000000000000   1
 2     0.250000000000000000000000000   0
 3     0.125000000000000000000000000   0
 4     0.062500000000000000000000000   0
 5     0.031250000000000000000000000   1
 6     0.015625000000000000000000000   1
 7     0.007812500000000000000000000   1
 8     0.003906250000000000000000000   0
 9     0.001953125000000000000000000   0
10     0.000976562500000000000000000   0
11     0.000488281250000000000000000   1
12     0.000244140625000000000000000   1
13     0.000122070312500000000000000   1
14     0.000061035156250000000000000   0
15     0.000030517578125000000000000   0
16     0.000015258789062500000000000   0
17     0.000007629394531250000000000   1
18     0.000003814697265625000000000   1
19     0.000001907348632812500000000   1
20     0.000000953674316406250000000   0
21     0.000000476837158203125000000   0
22     0.000000238418579101562500000   0
23     0.000000119209289550781250000   1
24     0.000000059604644775390625000   1

则浮点数:
0 1000 0000 11000111000111000111000 16进制:40638e38。
反向验算这个数值,是3.5555553436279297,可见32位浮点数的精度只有小数点后6,7位而已。

附:小数转2进制字符串代码,反向验算代码

浮点转2进制:
#include <stdio.h>
#include <math.h>

int main() {
    int i;
    double d = 3840.0/1080, a;
    d = d-(int)d;

    for (i=1;i<=24;i++) {
        a = 1.0/pow(2, i);
        //printf("%d", d>a?1:0); //这个查看最终结果
        printf("%2d     %0.27f   %d\n", i, a, d>a?1:0); //这个显示过程
        if (d>a) d-=a;
    }
}

//反向验算:
#include <stdio.h>
#include <math.h>

int main() {
    unsigned a = 0x3FE38E38;
    float b = *(float*)&a;
    printf("%.32f", b);
}

回答你这题,还真够辛苦。
追问
十分感谢耐心解答
网海1书生
科技发烧友

2018-01-09 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26232

向TA提问 私信TA
展开全部
这是计算屏幕的宽度和高度的比率:
1920÷1080=1.777777... 用16进制浮点数表示就是 3FE38E39,反过来就是 398EE33F
2560÷1080=2.370370... 用16进制浮点数表示就是 4017B426,反过来就是 26B41740
3840÷1080=3.555555... 用16进制浮点数表示就是 40638E39,反过来就是 398E6340
追问
太感谢了,我这就试试
你好请问这些分辨率是怎么算出来的呢?是用什么工具程序吗如果是的话可以告诉一下叫什么吗?想自制更多分辨率的东西,因为那个网址我输入xx分辨率/xx分辨率显示不出来换算出来的码是多少。还是说那个网址上,这样输入不正确呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式