Floating-Point Numbers( UVA - 11809,计算机浮点数模拟)

题解:浮点数(UVa 11809) 题目链接:https://vjudge.net/problem/UVA-11809 解题思路:本题当时考虑了很久没能AC,后来参考了网上的思路和解法,可以参考这篇博客的解题思路; AC截图: AC代码: #include<stdio.h> #include<math.h> #include<string.h> int main(){ long long Z[15][35]; doub 阅读详情

一.题目链接:

UVA-11809

二.题目大意:

计算机常用 E — M 的方法保存浮点数.               

E:阶码位数   M:尾数位数.          0 ≤ M ≤ 9, 1 ≤ E ≤ 30.

例如当 E == 6 && M == 8,则浮点数为  0.111111111{_{2}}^{} × 2^{111111_2} .

这个数转换成 10 进制之后就是 0.998046875 × 2^{63}  .

用 A × 10^{B} 的形式则表示为 9.205357638345294 × 10^{18} .

现给出一个形式为 AeB (0 < A < 10)的最大浮点数,试求出 M 和 E .

三.分析:

易得浮点数 :     A\times 10^{B} == (1 - \frac{1}{2^{M + 1}}) \times 2^{2^{E} - 1} 

两边取对数得:  lgA + B == lg(1 - \frac{1}{2^{M + 1}}) + (2^{E} - 1)\times lg2  

 \because 0 < A < 10

 \therefore lgA < 1

又 B 为整数

∴ lgA 为浮点数的小数部分

\therefore B == [ lg(1 - \frac{1}{2^{M + 1}}) + (2^{E} - 1)\times lg2]

   A == lg(1 - \frac{1}{2^{M + 1}}) + (2^{E} - 1)\times lg2 - B

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-4
#define PI acos(-1.0)
#define ll long long int
using namespace std;

const int M = 40;
double A[M][M];
int B[M][M];

void init()
{
    for(int m = 0; m < 10; ++m)
    {
        for(int e = 1; e < 31; ++e)
        {
            double tm = 1 - 1.0 / (1 << (m + 1));
            double te = (1 << e) - 1;
            double t = log10(tm) + te * log10(2);
            B[m][e] = t;
            A[m][e] = pow(10, t - B[m][e]);
        }
    }
}

int main()
{
    init();///打表
    string s;
    while(cin >> s && s != "0e0")
    {
        double a;
        int b;
        s[s.find('e')] = ' ';
        stringstream ss(s);
        ss >> a >> b;///读入处理
        for(int m = 0; m < 10; ++m)
        {
            for(int e = 1; e < 31; ++e)
            {
                if(b == B[m][e] && fabs(a - A[m][e]) < eps)
                    printf("%d %d\n", m, e);
            }
        }
    }
    return 0;
}

 

习题3-12 浮点数(Floating-Point Numbers, UVa11809) 题目计算机常用阶码-尾数的方法保存浮点数。如图3-9所示,如果阶码有6位,尾数有8位, 可以表达的最大浮点数为0.1111111112×211111120.111111111^2×2^{111111_{2}}。注意小数点后第一位必须为1,所以一共有9 位小数。 图3-9 阶码-尾数保存浮点数这个数换算成十进制之后就是0.998046875×263=9.205357638345294×10180 阅读详情

相关推荐

UVA 11809 - Floating-Point Numbers

这个题基本就是帮着你复习了一遍浮点数的存储方式了。需要推一下公式,然后打表,再处理一下输入。

_____ 8303

ModelSim仿真浮点除法器结果错误

ModelSim仿真浮点除法器结果如下: 可以发现该模块误差很大。 修正方法为: 在生成浮点除法器IP核时还生成了一个hex文件,ModelSim仿真时需要将该文件添加到ModelSim仿真工程中。输出为: ...

jj1481564052的专栏 1063

详解-紫书习题3-12 浮点数(Floating-Point Numbers, UVa11809)

紫书习题3-12 浮点数(Floating-Point Numbers, UVa11809) 题目:计算机常用阶码-尾数的方法保存浮点数。如 图3-9所示,如果阶码有6位,尾数有8位,可以表 达的最大浮点数为0.1111111112×21111112。注意小 数点后第一位必须为1,所以一共有9位小数。 这个数换算成十进制之后就是 0.998046875263=9.2053576383452941018。你的 任务是根据这个最大浮点数,求出阶码的位数E 和尾数的位数M。输入格式为AeB,表示最大浮 点数为A

ChenJ_cc的博客 555

uva11809floating-point numbers浮点数

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93800#problem/L 题意:输入表示尾数位数为M阶码尾数为E的最大浮点数AeB的A和B,输出M和E。 思路:M的范围为0到9,E的范围为1到30,打表储存其对应的A和B:尾数表示的数m=1-2^(-1-M),阶码表示的数e=2^j-1。m*2^e=AeB,2边同时取10的对数得...

weixin_30740295的博客 163

modsim32模拟器_modsim32_modsim32模拟器_modsin模拟器_

PLC通信调试模拟器,有接口文件,调用接口文件可以对PLC通信、模拟编程

电机控制-PMSM无感FOC控制(五)SVPWM过调制策略优化与谐波抑制

本文深入探讨了PMSM无感FOC控制中的SVPWM过调制策略优化与谐波抑制。针对电机高速运行时电压利用率不足的问题,分析了过调制技术的必要性,并详细阐述了分区过调制、谐波注入及闭环优化等主流策略,旨在提升电压利用率与抑制电流谐波,实现电机高性能控制。

convnet3designer的博客 353

UVa 11809 Floating Point Numbers

UVa 11809 Floating Point Numbers  浮点数的格式如下所示。如题所述一致,i 位长度存储尾数 m,(0.5≤m<1.0)(0.5≤m<1.0),j 位长度存储阶数 e 。            | M(m,i位长度) | E(e,j位长度) |  故数值N可以表示为:N=m×2eN=m×2^e。其中m=1−(1/2)i+1m=1-(

panderan的博客 514

ALTERA MAX10 FPGA 串口远程升级实战:从原理到烧录的避坑指南

本文详细解析了ALTERA MAX10 FPGA如何通过串口实现远程升级。文章从工程师实战经验出发,深入剖析了MAX10片内Flash的双镜像备份原理、CONFIG_SEL引脚启动机制,并重点介绍了使用On-Chip Flash IP核进行擦写操作的核心流程。同时,提供了从Quartus工程配置、RPD文件生成、串口协议设计到驱动代码编写的完整避坑指南,旨在帮助开发者稳定、高效地完成远程升级功能部署。

weixin_29197699的博客 273

UVa 11809 Floating-Point Numbers(浮点数)

Description Floating-point numbers are represented differently in computers than integers. That is why a 32-bit floating-point number can represent values in the magnitude of 1038 while a 32-

Shannon-Nansen 4092

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 190

Kali Linux下John the Ripper实战:从识别yescrypt哈希到破解zip压缩包(保姆级避坑指南)

本文详细介绍了在Kali Linux中使用John the Ripper工具从识别yescrypt哈希到破解zip压缩包的全过程。针对常见的'No password hashes loaded'报错,提供了两种解决方案,并扩展讲解了哈希识别、zip文件破解及性能优化技巧,是安全测试人员的实用指南。

weixin_29323365的博客 236

28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告

励志用少的代码做高效的表达 题目(提交)链接→UVA-11809 算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了。 这个题基本就是帮着你复习了一遍浮点数的存储方式了。浮点数在计算机里是分三部分表示的,最前面一位表示符号,后面一部分是尾数,最后一部分是阶码,表示方法类似于科学记数法,不过是二进制的,尾数是M阶码是E的话那么表示起来就是M × 2^E了。然后对于M还有一个要求,就是1/2 ≤ M < 1,所以用二进制表示M的话就应该是0.1XX……,用计算机表示的时候就把最前面的“0

weixin_43899069的博客 1077

转录因子详细介绍(motif)

转录因子详细介绍(motif) TF: transcription factor转录因子TFBS: transcription factor binding site转录因子结合位点TFBS是序列内的location,TF特异结合在这里,这个site有这种特点 1 和一些参考相关的一个位置(开始,结束,strand),这些reference可以是染色体开始,geneTSS。也可以是一段sequence 2 A SITE可以是实验证实的(已知的),也可以是一些算法(预测的) 3 例子,下面这个图是酵母

wangprince2017 3万+

Uva 11809 Floating-Point Numbers

11809 - Floating-Point Numbers Time limit: 1.000 seconds 题目链接:https://uva.onlinejudge.org/index.PHP?option=com_onlinejudge&Itemid=8&category=226&page=show_problem&problem=2909 Floating-point numb

dark_master的博客 422

华为OD机试 - 压缩日志查询(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某设备需要记录每分钟检测到的指标值。为了节约存储空间,将连续相同指标值的记录合并。压缩之前:202411231000,11 202411231001,11 202411231002,12 202411231003,12 202411231004,

学Java,找哪吒 1880

3.DJI-payload SDK自定义控件的设计:

自定义控件(Widget)是指负载运行时,在用户界面中显示的自定义 UI 控件,以帮助用户快速查看负载独特的设备状态,或者对负载设进行设置。这些 UI 控件可以显示在以下用户界面中。Pilot 2 应用程序;大疆智图;基于 MSDK 开发的应用程序。这种自定义控件并不是通过 MSDK 实现的,而是通过 PSDK 的配置实现的。。

哒宰的博客 770

UVA 11809 Floating-Point Numbers

UVA 11809

阿巴阿巴 311

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

UVA - 11809 Floating-Point Numbers

#include<stdio.h> #include<string.h> #include<math.h> const double eps = 1e-4; int main() { double M[20][40]; long long E[20][40]; // 打表 for (int i = 0; i <= 9; ++i) { f...

qwerty559的博客 158

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UVA11809 Floating-Point Numbers【浮点数】

Floating-point numbers are represented differently in computers than integers. That is why a 32-bit floating-point number can represent values in the magnitude of 1038 while a 32-bit integer can only represent values as high as 232.    &nbsp

海岛Blog 554

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【UVA】 11809 --- Floating-Point Numbers

【UVA】 1588 --- Kickdown Floating-point numbers are represented differently in computers than integers. That is why a 32-bit floating-point number can represent values in the magnitude of 1038 while a ...

来日浅谈的博客 611

UVA - 11809(Floating-Point Numbers)

参考博客 题意及分析: 给定一个字符串(格式为AeB)代表。 直接求是非常困难的,所以我们反正求,根据M和E的范围打表查找。 首先,我们先分析一下题意及各变量的意义。 如上图所示,这是一个浮点数的二进制存储: 绿色的 '1' 代表的是尾数(用m表示)的二进制,尾数的位数(有几个1就几位)用M表示(这个M=8); (ps:事实上,尾数m前面自动省略了‘0.1’,上图m...

Vici__ 521

UVA 11809 Floating-point numbers

Floating-point numbers are represented differently in computers than integers. That is why a 32-bit floating-point number can represent values in the magnitude of 1038 while a 32-bit integer can

Seeyouer的博客 405

UVa 11809 Floating-Point Numbers

Floating-point numbers are represented differently in computers than integers. That is why a 32-bit floating-point number can represent values in the magnitude of 1038 while a 32-bit integer can only

c21c21的专栏 507
上一篇: SDNU_ACM_ICPC_2019_Winter_Practice_5th
下一篇: 高精度乘法(Trachtenberg速算法)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值