码迷,mamicode.com
首页 > 其他好文 > 详细

十进制转换十六进制

时间:2019-02-28 10:25:41      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:max   lse   printf   ons   pop   c++   oid   print   main   

思路:将这个十进制的数整数部分除16取余,小数部分乘16取整。

这里只写了整数部分的转换:

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define MAX 1000000000
#define mod 1000000007
#define FRE() freopen("in.txt","r",stdin)
#define FRO() freopen("out.txt","w",stdout)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
const int maxn = 27;
ll n;
map<ll,char>mp;

void init() {
    mp[0]=0;mp[1]=1;mp[2]=2;mp[3]=3;mp[4]=4;mp[5]=5;
    mp[6]=6;mp[7]=7;mp[8]=8;mp[9]=9;mp[10]=A;mp[11]=B;
    mp[12]=C;mp[13]=D;mp[14]=E;mp[15]=F;
}

int main() {
    init();
    scanf("%lld",&n);
    if(n==0) {
        printf("0\n");
    } else {
        stack<char> ans;
        ll y=0;
        while(n) {
            y = n%16;
            n = n/16;
            ans.push(mp[y]);
        }
        while(!ans.empty()) {
            printf("%c",ans.top());
            ans.pop();
        }
        printf("\n");
    }

    return 0;
}

 

十进制转换十六进制

标签:max   lse   printf   ons   pop   c++   oid   print   main   

原文地址:https://www.cnblogs.com/sykline/p/10448520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!