链接:
https://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6
来源:牛客网
2. java
3.cpp
来源:牛客网
[编程题]进制转换
- 热度指数:116844时间限制:1秒空间限制:32768K
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
下面给出多种代码实现:
1. Cpp
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <string>
#include <cstring>
#include <algorithm>
#include <ctime>
using namespace std;
int hexToInt(string a);
int main()
{
string a;
while(cin>>a) {
cout<<hexToInt(a)<<endl;
}
}
int hexToInt(string a) {
int sum=0,len=a.length();
for (int i=2;i<len;i++) {
if (a[i]=='A'||a[i]=='a') sum+=(int)10*pow(16,len-1-i);
else if (a[i]=='b'||a[i]=='B') sum+=11*(int)pow(16,len-1-i);
else if (a[i]=='c'||a[i]=='C') sum+=12*(int)pow(16,len-1-i);
else if (a[i]=='d'||a[i]=='D') sum+=13*(int)pow(16,len-1-i);
else if (a[i]=='e'||a[i]=='E') sum+=14*(int)pow(16,len-1-i);
else if (a[i]=='f'||a[i]=='F') sum+=15*(int)pow(16,len-1-i);
else sum+=(a[i]-'0')*pow(16,len-1-i);
}
return sum;
}
import java.util.Scanner;
import java.lang.Integer;
public class 进制转换3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()) {
String a=sc.next();
String b=a.substring(2,a.length());
System.out.println(Integer.parseInt(b,16));
}
}
}
// 最简单的做法
#include <iostream>
using namespace std;
int main()
{
int a;
while(cin>>hex>>a){
cout<<a<<endl;
}
return 0;
}