16进制转10进制【北京大学考研机试题】
16进制转10进制
写出一个程序,输入一个十六进制的数值字符串,输出该数值的十进制字符串。
输入格式
输入包含多组测试数据。
每组数据占一行,包含一个十六进制的数值字符串。
输出格式
每组数据输出一行结果,表示给定数值的十进制字符串。
数据范围
每个输入最多包含 100组数据。
所有答案均在 int 范围内。
输入样例:
0xA
输出样例:
10
思路
秦九韶求和
代码
点击查看代码
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
const char nl = '\n';
int main(){
string s;
//转换为数字
while(cin >> s){ // 多次输入
int j;
int ret = 0; //答案在int范围内
if(s[0] == '-')j = 3; //注意可能是负数
else j = 2;
for(int i = j; i <= s.size() - 1; i ++ ){ //秦九韶算法求10进制
ret *= 16; //注意要先乘
if(s[i] >= '0' && s[i] <= '9')ret += (s[i] - '0');
else if(s[i] >= 'A' && s[i] <= 'Z')ret += (s[i] - 'A' + 10); //注意判断大小写
else ret += (s[i] - 'a' + 10); //注意要加上10
}
if(s[0] == '-')cout << -ret << nl;
else cout << ret << nl;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】