注册 登录
编程论坛 C++教室

数字转换问题

lixingxing52 发布于 2009-11-22 14:39, 457 次点击
输入一个10进制的数将其转换为16进制的字符。
4 回复
#2
modesiyu2009-11-22 17:29
#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int a;
    cin>>a;
    int i,j;
    vector <int> b;
    if(a<16)
            b.push_back(a);
    while(a>=16)
    {
        b.push_back(a%16);
        a=a/16;
        if(a<16)
            b.push_back(a);
    }

   
    for(j=b.size()-1;j>=0;j--)  
    {
   
        switch(b[j])
        {
        case 0:
            cout<<'0';break;
        case 1:
            cout<<'1';break;
        case 2:
            cout<<'2';break;
        case 3:
            cout<<'3';break;
        case 4:
            cout<<'4';break;
        case 5:
            cout<<'5';break;
        case 6:
            cout<<'6';break;
        case 7:
            cout<<'7';break;
        case 8:
            cout<<'8';break;
        case 9:
            cout<<'9';break;
        case 10:
            cout<<'A';break;
        case 11:
            cout<<'B';break;
        case 12:
            cout<<'C';break;
        case 13:
            cout<<'D';break;
        case 14:
            cout<<'E';break;
        case 15:
            cout<<'F';break;
        }
    }
        return 0;
}
#3
ivanjoysky2009-11-23 00:13
#include<iostream.h>
#include<vector.h>
int main()
{
    int a;
    cin>>a;
    int i,j;
    vector <int> b;
    if(a<16)
            b.push_back(a);
    while(a>=16)
    {
        b.push_back(a%16);
        a=a/16;
        if(a<16)
            b.push_back(a);
    }

   
    for(j=b.size()-1;j>=0;j--)  
    {
   
        switch(b[j])
        {
        case 0:
            cout<<'0';break;
        case 1:
            cout<<'1';break;
        case 2:
            cout<<'2';break;
        case 3:
            cout<<'3';break;
        case 4:
            cout<<'4';break;
        case 5:
            cout<<'5';break;
        case 6:
            cout<<'6';break;
        case 7:
            cout<<'7';break;
        case 8:
            cout<<'8';break;
        case 9:
            cout<<'9';break;
        case 10:
            cout<<'A';break;
        case 11:
            cout<<'B';break;
        case 12:
            cout<<'C';break;
        case 13:
            cout<<'D';break;
        case 14:
            cout<<'E';break;
        case 15:
            cout<<'F';break;
        }
    }
        return 0;
}
#4
无诲今生2009-11-23 09:00
#include<stdlib.h>
#include<iostream.h>
void main()
{
char str[10];
int number;
cin>>number;
itoa(number,str,16);
cout<<str<<endl;
}
#5
无诲今生2009-11-23 09:19
#include<iostream.h>
#include<stdio.h>
#include<stack>
void main()
{
    int number;
    int n;
    std::stack<int> sta;
    cin>>number;
    while(number)
    {
        n=number%16;
        sta.push(n);
        number=number/16;
    }
    for(int i=0;i<=sta.size();i++)
    {
        if(sta.top()>=0&&sta.top()<=9)
            printf("%d",sta.top());
        else
            printf("%c",sta.top()+55);
        sta.pop();
    }
    cout<<endl;

}
1