Time Limit: 3 second

Memory Limit: 2 MB

问题描述

输入一个十六进制数,编程转换为十进制数。

整数部分不会超过65535,十六进制的小数部分不会超过2位。

Sample Input

FFFF

Sample Output

65535

Sample Input

200.AB

Sample Output

512.66796875

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=rlz03

【题解】



小数部分的权值为x1*1/16+x2*1/sqr(16)+x3*….

还是用setprecision来控制输出;

iomanip是它的头文件

字母A..F和数字10..15的转换可以用一个函数来写;



【完整代码】

//#include <bits/stdc++.h>
#include <cstdio>
#include <string>
#include <iostream>
#include <iomanip> using namespace std; string s; int zs(char key)
{
if (isdigit(key))
return key-'0';
else
return key-'A'+10;
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
cin >> s;
int pos = s.find('.',0);
if (pos!=-1)
{
int num = 1;
int zhengshu = 0;
for (int i = pos-1;i >= 0;i--)
{
if (s[i]!='0')
zhengshu+=num*zs(s[i]);
num*=16;
}
double num1 = (1.0/16.0),xiaoshu = 0;
int len = s.size();
for (int i = pos+1;i <= len-1;i++)
{
if (s[i]!='0')
xiaoshu+=num1*zs(s[i]);
num1*=(1.0/16.0);
}
int lo;
double temp = 0;
temp = zhengshu;
temp+=xiaoshu;
cout <<setprecision(18)<<temp<<endl;
}
else
{
int num = 1;
int zhengshu = 0,len = s.size();
for (int i = len-1;i >= 0;i--)
{
if (s[i]!='0')
zhengshu+=num*zs(s[i]);
num*=16;
}
printf("%d\n",zhengshu);
}
return 0;
}

【rlz03】十六进制转十进制的更多相关文章

  1. [No000071]C# 进制转换(二进制、十六进制、十进制互转)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 十六进制转十进制函数_C编程

    /**************************十六进制转十进制函数**************************//*函数原型:uint htd(uint a)/*函数功能:十六进制转十 ...

  3. UTC格式转换 & 十六进制换算为十进制

    UTC格式转换成北京时间格式: /// <summary> /// UTC格式与datatime的转换 /// </summary> /// <param name=&q ...

  4. BCD码、十六进制与十进制互转

    在做嵌入式软件的设计中,常常会遇到十六进制.BCD码与十进制之间的转换,近期做M1卡的应用中,涉及了大量的十六进制.BCD码与十进制之间的转换.通过对BCD码.十六进制 权的理解,轻松的实现了他们之间 ...

  5. C语言的本质(2)——二进制、八进制、十六进制与十进制

    二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世纪德国数理哲 ...

  6. C# 进制转换(二进制、十六进制、十进制互转)

    原文地址:https://www.cnblogs.com/icebutterfly/p/8884023.html C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所 ...

  7. 八进制、十六进制与十进制的转换,bytes的十六进制

    二进制.八进制.十六进制与十进制的不同顾名思义在于进位不同: 十进制遇十进一,9+1=10,19+1=20,199+1=200.相同数字前一位是后一位的十倍,例如11,前一个代表10,后一个是1. 一 ...

  8. lqb 基础练习 十六进制转十进制

    基础练习 十六进制转十进制 时间限制:1.0s   内存限制:512.0MB     问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~ ...

  9. JAVA 十六进制和十进制、二进制转换

    java十六进制和十进制.二进制转换 十进制转化成十六进制 Integer x = 100; hex = x.toHexString(x); 十六进制转化成十进制 Integer.parseInt(h ...

  10. python实现进制转换(二、八、十六进制;十进制)

    python实现进制转换(二.八.十六进制:十进制) (一)十进制整数转为二.八.十六进制 1.format实现转换>>> format(2,"b") # (10 ...

随机推荐

  1. 博弈论 SG函数(模板) HDU 1848 Fibonacci again and again

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  2. js常用代码示例及解决跨域的几种方法

    1.阻止默认行为 // 原生js document.getElementById('btn').addEventListener('click', function (event) { event = ...

  3. shell项目-告警系统

    告警系统 1. 告警系统需求分析 需求:使用shell定制各种个性化告警工具,但需要统一化管理.规范化管理. 思路:指定一个脚本包,包含主程序.子程序.配置文件.邮件引擎.输出日志等. 主程序:作为整 ...

  4. 洛谷 P2021 faebdc玩扑克

    P2021 faebdc玩扑克 题目背景 faebdc和zky在玩一个小游戏 题目描述 zky有n个扑克牌,编号从1到n,zky把它排成一个序列,每次把最上方的扑克牌放在牌堆底,然后把下一张扑克牌拿出 ...

  5. wpf app全局变量传参方法(代码片段 )

    清空某行绑定的行数据: int RowIndex = datagrid.SelectedIndex; _Table.Rows[RowIndex]["AVERAGE_PRICE"] ...

  6. Android中关于JNI 的学习(零)简单的样例,简单地入门

    Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,J ...

  7. tooltip两个特殊的属性

    <body style="margin: 50px;"> <!--两个特殊的属性--> <div id="selection"&g ...

  8. Android 用Socket实现PC和手机的文件传输

    PC服务器端代码: /* * PC与<a href="http://lib.csdn.net/base/android" class='replace_word' title ...

  9. 【agc009b】Tournament

    Description 一场锦标赛有n个人,总共举办n-1次比赛,每次比赛必定一赢一输,输者不能再参赛.也就是整个锦标赛呈一个二叉树形式.已知一号选手是最后的胜者,以及对于i号选手(i>1)都知 ...

  10. NOI2018归程(Kruskal重构树)

    题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 n 个节点.m 条边的无向连通图(节点的编号从 1 至 n). 我们依次用 l,a 描述一条边的长度. ...