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

求助ieee754浮点数的问题

发布网友 发布时间:2022-05-20 21:10

我来回答

2个回答

热心网友 时间:2023-11-27 01:28

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

下面进行计算,先计算: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);
}

回答你这题,还真够辛苦。

追问十分感谢耐心解答

热心网友 时间:2023-11-27 01:29

这是计算屏幕的宽度和高度的比率:
1920÷1080=1.777777... 用16进制浮点数表示就是 3FE38E39,反过来就是 398EE33F
2560÷1080=2.370370... 用16进制浮点数表示就是 4017B426,反过来就是 26B41740
3840÷1080=3.555555... 用16进制浮点数表示就是 40638E39,反过来就是 398E6340追问太感谢了,我这就试试

你好请问这些分辨率是怎么算出来的呢?是用什么工具程序吗如果是的话可以告诉一下叫什么吗?想自制更多分辨率的东西,因为那个网址我输入xx分辨率/xx分辨率显示不出来换算出来的码是多少。还是说那个网址上,这样输入不正确呢?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在五粮液000858可以买进么? 2021年五粮液(000858)总资产、总负债、营业收入、营业成本及净利润统... 手机耗电太快了怎么解决 教你方法,轻松解决 Tag模块数组indexOf,splice的使用方法 JavaScript indexOf简介 对于一个JS对象数组怎么使用IndexOf方法得到索引呢? Array.indexOf() 学习 狼来了是什么效应 当两种刺激都出现,认知者会产生首因效应还是近因效应呢? 大过年的…… 自己的校园网账号在自己电脑上不能下载IEEE论文 自己的校园网账号在自己电脑上不能下载IEEE论文 在ieeexplore中无法打开pdf。 新装的XP的系统,一直进不去IEEE网站,别的资料库都可以,更换过各种浏览器,都打不开,急等解决!!! 为什么我装了Adobe Acrobat 9 Pro,其他网页的PDF可以打开,却打不开IEEE网页上的PDf文件,怎么解决啊? 我的电脑ieee网站进不去,ie、360、chrome浏览器都记不清,请问这是怎么回事?别人的电脑就能进。 我的电脑ieee网站进不去,ie、360、chrome都进不去,请问这是怎么回事?别人的电脑就能进。 显示如下图 ieee打不开,显示的是域名解析错误,用了IE和谷歌浏览器都不行,其他电脑都可以,求解答 其他网页都打得开,但是IEEE的网页打不开 武汉扁担山公墓价格 武汉墓地价格石门峰九龙宫幸福山陵园价格多少??? 棺材山的棺材山 武汉幸福山陵园怎么样 武汉幸福长堤公园在哪里? 从汉阳出发怎么坐车能到幸福山公园 附加坡到武汉幸福山生命公园坐公交车? 武汉幸福山在哪里?? 武汉幸福山生命公园墓地价格怎么样 武汉生命公园的公园简介 光阴的故事电视剧简介 求助ieee754浮点数的问题 猫可以上,接上路由器输入IP地址之后,浏览器为何打不开 检查了网线没有问题 nic组合 打不开网页 nic组合 打不开网页 哈尔滨75路车几点末车?(要准确的答案) 海口市75路公交车的始点站在哪里? 温州57路75路末班车9点后还有车吗,开往双屿客运中心 农村老话说“若要玉米大,不准叶打架”是什么意思?这样能增产吗? 石家庄现在还有快75路公交车么?谢谢 玉米大丰收,但玉米的价格却下降了,这是因为什么? 玉米大斑病的防治时间 石家庄北站现在都有什么公交车!具体的营运时间 玉米大面积的得了大斑病,该怎样防治? 杨州公交75路几点上班 玉米大的像什么? 玉米大 玉米黄 我们坐在玉米上 来吧公社唱 俄语翻译 柳州市水上乐园 玉米大喇叭口追尿素加颗粒锌肥可以吗? 东莞石龙到惠州最晚那班车是几点发车? 广州南站到广州东站