博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯 【基础练习】 十六进制转十进制
阅读量:7249 次
发布时间:2019-06-29

本文共 810 字,大约阅读时间需要 2 分钟。

问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

示例代码:

#include
#include
#include
using namespace std;int main(){ string hex; long long dec = 0; cin>>hex; int len = hex.length(); for(int i=0 ;i
= 'A') { dec += (hex[i] - 'A' + 10)*pow(16,len-1-i); } else { dec += (hex[i] - '0')*pow(16,len-1-i); } } cout<
一开始提交时正确率一直不能达到100%,检查了代码并没有问题,然后百度了一些别人的一些做法,原来是定义的数据范围不够。8个十六进制数对应的十进制数应该用long long类型变量来表示。

如果是将八进制转换为十进制就会相对简单一些,因为八进制中没有英文字母:

#include
#include
#include
using namespace std;int main(){ string hex; long long dec = 0; cin>>hex; int len = hex.length(); for(int i=0 ;i

转载于:https://www.cnblogs.com/zhezh/p/3773337.html

你可能感兴趣的文章
Fiddler Web Debugger简单调试头部参数
查看>>
Linux环境下发布项目(Tomcat重新启动)
查看>>
centos7配置svn服务器
查看>>
亮剑:PHP,我的未来不是梦(13)
查看>>
MYSQL主从数据同步
查看>>
javascript数组操作
查看>>
linux中父进程退出时如何通知子进程
查看>>
linux 缩减文件系统大小 LVM
查看>>
对比文件md5值实现去重文件
查看>>
C#设计模式之二十三解释器模式(Interpreter Pattern)【行为型】
查看>>
js处理中文乱码记录/nodejs+express error 413
查看>>
基于Keepalived实现LVS双主高可用集群
查看>>
SqlServer 使用脚本创建分发服务及事务复制的可更新订阅
查看>>
什么是Floating (浮动)规则?
查看>>
分布式文件系统-FastDFS
查看>>
HTML5 rotate 做仪表盘
查看>>
为什么说荆州松滋刘氏采穴堂是刘开七、刘广传的后裔
查看>>
React中使用Ant Table组件
查看>>
第四篇 快速、轻量、可扩展、易于使用的EmEditor
查看>>
MySQL删除小写记录
查看>>