进制转换

来源:互联网 发布:触摸交互式软件 编辑:程序博客网 时间:2024/06/04 17:43
链接:https://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6
来源:牛客网

[编程题]进制转换
  • 热度指数: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;}


2. java

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));}}}

3.cpp 
// 最简单的做法 
#include <iostream>using namespace std;int main() {int a;while(cin>>hex>>a){cout<<a<<endl;}return 0;}




原创粉丝点击