2191 - 十进制转16进制

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

输入十进制数, 转换成16进制.

题目输入

有多行数据,每一行数据N的数值范围在[0, 231 - 1].

(用for 或while循环实现,不用API提供的直接转换方法)

题目输出

每一行输出N所对应的十六进制。

输入/输出样例

输入格式

2012
2013

输出格式

7DC
7DD

C语言解答

#include<stdio.h>
int main(){
    int num;
    while(scanf("%d",&num)!=EOF){
            int i;
            int b[100];
    for(i=0;i>=0;i++) {
        b[i]=num%16;
        if(num/16==0) break;
        num=num/16;
    }
    for(i=i;i>=0;i--) {
            if(b[i]==10) printf("A");
            else if(b[i]==11) printf("B");
            else if(b[i]==12) printf("C");
            else if(b[i]==13) printf("D");
            else if(b[i]==14) printf("E");
            else if(b[i]==15) printf("F");
            else  printf("%d",b[i]);
    }
    printf("\n");
    }
    return 0;
}

C++解答

#include<iostream>
#include<vector>
using namespace std;

void Translate(int a){
	vector<char> v;

	do{
		int remain=0;
		remain=a%16;
		if(remain>9)
			v.push_back('F'-(15-remain));
		else
			v.push_back(char(remain)+48);
		a=a/16;
	}while(a>0);

	for(int i=v.size()-1;i>=0;i--)
		cout<<v[i];
	cout<<endl;

}

int main(){
	int a;
	while(cin>>a){
		Translate(a);
	}
	return 0;
}

Java解答

public class Main 
    {
            public static void main(String[] args)
            { 
              java.util.Scanner input = new java.util.Scanner(System.in);
              do {
                int number1 = input.nextInt();
                String number2 ="";
                int number3 = number1;
                if(number3==0)
                  System.out.println(0);
                while(number1!=0) {
                  int yushu = number1 % 16;
                 
                  number2=CHAR(yushu) + number2;
                  number1 = number1/16;
                }
                if (number3!=0)
                System.out.println(number2);
              }while(input.hasNextInt());
                          }
  public static char CHAR(int n) {
    if(n>=0&&n<=9){
      char m = (char)(n+'0');
      return m;
    }
    else {
      char m = (char)('A'+(n-10));
    return m;
    }
  }
 

}