zoukankan      html  css  js  c++  java
  • C++:十进制转十六进制

    摘自老师实验代码参考


    【实验2】    16进制转换
    设计程序,输入一个十进制数N(0≤N≤2147483647),输出相应的十六进制数。
    1.输入描述
    现在给你多组测试案例。第一行是一个正整数,表示接下来的测试案例的个数。每个测试案例是一行,只有一个整数。
    2.输出描述
    每个测试案例都打印在一行上。
    3.样例输入
    5
    2013
    0
    10000
    1
    2147483647

    方法一:采用vector

    View Code
    #include <iostream>
    #include <vector>
    
    using namespace std;
    int main()
    {
        int m, n;
        vector<int> v;
        char s[] = "0123456789ABCDEF";//字典
    
    
        cin>>m;
        while(m--)
        {
            cin>>n;
    
            v.clear();
            if (n == 0)
                v.push_back(0);
    
            while (n != 0)
            {
                v.push_back(n%16);
                n = n / 16;
            }
    
            vector<int>::reverse_iterator rit;
            for (rit = v.rbegin(); rit != v.rend(); rit++)
                cout<< s[*rit];//这里比较有技巧
    
            cout<<"H" <<endl;
        }
    
        return 0;
    }

    方法二:采用string

    View Code
    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int m, n;
        string s;
    
        cin>>m;
        while(m--)
        {
            cin>>n;
    
            s = "";
            if (n == 0)
                s = "0";
    
            while (n != 0)
            {
                if (n%16 >9 )
                    s += n%16 - 10 +'A';
                else
                    s += n%16 + '0';
                n = n / 16;
            }
    
            reverse(s.begin(), s.end());//反转
            cout<<s <<"H" <<endl;
        }
    
        return 0;
    }

    方法三:

    View Code
    #include <stdlib.h>
    
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int m, n;
        char buf[80];
    
        cin>>m;
        while(m--)
        {
            cin>>n;
    
            itoa(n, buf, 16);//转换为是小写16进制,
    
            transform(buf, buf + strlen(buf), buf, toupper);//转大写
            
            cout<<buf <<"H" <<endl;
        }
    
        return 0;
    }
  • 相关阅读:
    二叉查找树(二)
    白话红黑树系列之一——初识红黑树
    二叉查找树(三)
    白话红黑树系列之二——红黑树的构建
    二叉查找树(一)
    二叉查找树(五)
    选择实现—简单工厂
    嵌入式开发er的C语言能力自测(面试)题top 16
    AOP探索笔记
    浅谈.net插件式编程
  • 原文地址:https://www.cnblogs.com/KeenLeung/p/2965181.html
Copyright © 2011-2022 走看看