十六进制转十进制
2017-01-04 14:50
190 查看
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include <iostream> #include <string> #include<math.h> #include<stdio.h> using namespace std; int main() { string str; long long sum=0; cin>>str; int str_len=str.length(); for(int i=0;i<str_len;i++) { if(str[i]>='A') { sum+=(str[i]-'A'+10)*pow(16,str_len-1-i); } else { sum+=(str[i]-'0')*pow(16,str_len-1-i); } } printf("%I64d\n",sum); return 0; }十六进制数不超过八位,int型数据存储不了,sum要用Long long 类型,并且要判断,十六进制数是否是字母,若是字母需要减去A+10,可以转化为对应的十六进制的数,若不是字母,直接将字符串转化为整数,在转化为十进制数。
相关文章推荐
- 商品系统设计(二):定时更新商品总点击量
- ButterKnife 在AndroidStudio中的配置
- JMS-ActiveMQ学习笔记
- Linux 文件与目录系统
- keepalived+nginx配置文件及检查nginx服务的脚本
- Linux进程管理及while循环
- mysql 中 select中 用case
- 时间序列/信号处理开源数据集-转
- Linux进程管理及while循环(转)
- 每天一个linux命令(4):mkdir命令
- 一个iOS开发者必须掌握的66个知识点,你掌握了多少?
- 你的气质里面,包含着你走过的路,读过的书和爱过的人
- iOS 国际化手机内切换,不需要重新启动。
- 基于jQuery实现火焰灯效果导航菜单
- ftp Java实现
- 本地yum仓库搭建
- hive 调优总结
- PAT 乙级 1013
- ORACLE 常用查询
- 矩阵连乘