10进制数转为16进制

问题

输入一个10进制数,输出这个10进制数对应的16进制数

思路

首先用10进制数除以16,余数则为不能进位的数字,则写在最低位上,商的含义是有多少个16,如果商大于等于16的话,意味还可以接着进位,那么用商接着除以16,余数写在倒数第二位上……以此进行下去,直到不能进位为止

代码

#include <iostream>
#include<string>
using namespace std;
string m = "0123456789ABCDEF";
int main()
{
    int n;
    cin >> n;
    string ans = "";
    while (true)
    {
        if (n < 16)
        {
            ans = m[n] + ans;
            break;
        }
        int w = n % 16;
        ans = m[w] + ans;
        n = n / 16;
    }
    cout << ans;
}

原文地址:https://www.cnblogs.com/WAoyu/p/8470567.html

时间: 2024-10-21 06:26:00

10进制数转为16进制的相关文章

汇编:2进制数转为10进制数

1 ;功能:16位的2进制数转为5位的10进制数并输出 2 DATAS SEGMENT 3 Num dw 1111100111B ;带转换的二进制数(<=16位 测试用例对应的10进制为999) 4 buffer db 5 dup(0) ;用来保存结果 5 jm dw 10000,1000,100,10,1 ;用于每次循环的除数 6 DATAS ends 7 CODES SEGMENT 8 ASSUME CS:CODES, DS:DATAS 9 START: 10 mov AX,DATAS 11

超级(无限)大的 --- 整型10进制数据与16进制数据相互转换

<html> <title>超级(无限)大的 --- 整型10进制数据与16进制数据相互转换</title> <head> <meta charset="utf-8"/> <meta name="keywords" content="数据压缩算法,超过整数表示范围的大数据算术运算,大进制数据互相转换" /> <meta name="keywords"

javascript将10进制数转换为2进制

javascript中将10进制数转换为2进制有两种方式 一种是直接用toString(2)这个方法,一种是自己写一个方法换算,以下是代码: var num = 11; var str = num.toString(2); /*将十进制数转变为二进制数*/ function dec2bin(num){ var result = ""; if(num == 0){ return "0"; } while(num > 0){ result = num % 2 +

支持windows linux下将指定内存段转为16进制与ascii码的日志输出类

来源:http://blog.csdn.net/lezhiyong 1. 简介 将指定内存段转为16进制与asci码的输出到日志文件的类. 2. 功能介绍 1) 支持window与linus双系统. 2) 可指定输出目录. 3) 日志能输出的时间精确到毫秒,日志能输出线程号. 4) 提供字符串输出. 5) 提供指定内存转换为16进制输出. 6) 提供指定内存转换为16进制和ascii码同时输出. 7) 可调整16进制输出间距. 3. 原理和算法 1) 模块是基于C++语言编写: 2) 通过条件定

关于2进制直接转16进制

实际中估计也没有这个需求,只是写写. 能不能直接由2进制转为16进制呢,最直接的办法是通过位移操作,也就是通常所说的 每四位二进制对应一个16进制, 假如java中有一种 二进制的基础类型 Binary bi = new Binary(11010101);这样的话 进行 bi >>> 4 位移操作 就可以很容易转换了,关于这个可以参考Integer.java中的toHexString(int i)方法. 但是没有这种类型,java中貌似没有直接转化的方法,也就只能先转为10进制,再转为1

ACM 求全排列(字典序、邻位对换、递增进位制数,递减进位制数)

字典序:(联合康托展开就也可以按照中介数求) 邻位对换.递增进位制数,递减进位制数:具体的实现和算法讲解如下: 代码..C++版的实现并不好..因为是挨个向后找的,如果K很大的时候会超时,不过...思路是这样...,第二版C++没有完成...因为不想写了,思路很简单,一次加减K就可以了 python代码直接给出,很完美 1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #include<algo

MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

1.编辑框添加变量,并选择变量类型为CString. 2.  使用"_tcstoul"函数将Cstring 类型转换为16进制/10进制数进行计算. 原文地址:https://www.cnblogs.com/lize19940412/p/10068273.html

自定义函数实现10进制转化为16进制

把结果都列出来,可以提升代码运行速率 #include<stdio.h> char hex_char(unsigned int n) { switch(n) { case 0: return '0'; case 1: return '1'; case 2: return '2'; case 3: return '3'; case 4: return '4'; case 5: return '5'; case 6: return '6'; case 7: return '7'; case 8:

10进制转化为16进制以内的转化

进制转化问题十进制转化为其它进制应该是比较简单的问题,就是一个%和/的问题,模之后再除就ok了 1 int a[1000]; 2 char c[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 3 int main() 4 { 5 int m,n,i,t,k; 6 printf("十进制数:"); 7 scanf("%d",&n); 8 printf("多少进制