递归 将一个10进制数,转换为16进制

代码:

#include <stdio.h>

char HexToChar(unsigned int num)
{
    switch(num)
    {
        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 :
            return ‘8‘;
        case 9 :
            return ‘9‘;
        case 10 :
            return ‘a‘;
        case 11 :
            return ‘b‘;
        case 12 :
            return ‘c‘;
        case 13 :
            return ‘d‘;
        case 14 :
            return ‘e‘;
        case 15 :
            return ‘f‘;

    }
    return ‘0‘;
}

void MyHex(unsigned int num)
{
    unsigned int tmp = num%16;
    if(num > 16 )
        MyHex(num / 16);
    printf("%c",HexToChar(tmp));
}

int main()
{
   int a =100111;
    scanf("%d",&a);
    MyHex(a);
   printf("\n");

   return 0;
}

高亮部分是这段代码利用“递归”的关键所在:1  递归要有重要的退出条件  2  递归中的外部形参变实参,一系列操作后,数据再设置为内部形参,是一大特点。

运行:

时间: 2024-10-12 17:44:53

递归 将一个10进制数,转换为16进制的相关文章

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 +

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

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

10进制数转为16进制

问题 输入一个10进制数,输出这个10进制数对应的16进制数 思路 首先用10进制数除以16,余数则为不能进位的数字,则写在最低位上,商的含义是有多少个16,如果商大于等于16的话,意味还可以接着进位,那么用商接着除以16,余数写在倒数第二位上--以此进行下去,直到不能进位为止 代码 #include <iostream> #include<string> using namespace std; string m = "0123456789ABCDEF"; i

js中十进制数转换为16进制

使用 Number类的 toString()方法: var num = 255; console.log(num.toString(16));//输出FF

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

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

4位bcd数转换为2进制数

DATA   SEGMENTBUF    DW  1234HBUF1   DW  ?    ;2进制数放到buf1内存单元DATA   ENDSCODE   SEGMENTASSUME CS:CODE,DS:DATABEGIN: MOV AX,DATA       MOV DS,AX       MOV DX,BUF       CALL DISC       MOV AH,4CH       INT 21H       DISC PROC       XOR  AX,AX       MOV 

颜色中透明度转换为16进制的计算方法

颜色用6位16进制表示,如#ffffff,全为f,说明是各种颜色的组合,是白色. #000000是什么颜色都没有,那就是黑色.. 加上透明度,则再加2位16进制如:#00ffffff,共8位16进制的数字.前两位:00表示完全透明,ff表示完全不透明.其余的则根据不透明度的百分比来计算. 如白色,不透明度为30%,那么颜色值表示为#**ffffff表示白色,透明度的计算: 255x30%,转换为16进制数即可,为4c,所以8位颜色为:#4cffffff.

URL参数中汉字转换为16进制Unicode形式

导入JAR包: import java.net.*; 把汉字转换为16进制Unicode形式: String xw="新闻中心"; String name=URLEncoder.encode(xw,"utf-8"); 把16进制Unicode形式字符串转换为汉字: URLDecoder.decode("%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83","utf-8"); 注意:从A(UTF-8)页面中

汉字转换为16进制

汉字转换为16进制.%C0%EE%CE%C4%B4%CF  对应  李文聪一个汉字对应两个十六进制源码如下:int main(){  int i;  char* str = "李文聪";  char res_tmp[100];  char res[100] = {"%"};   for (i = 0; i < strlen(str); i++)  {      sprintf(res_tmp + 3*i, "%02X ", (unsigne

js中如何把RGB颜色转换为16进制颜色

将RGB颜色值转换为16进制颜色值,主要是将 R.G.B 值分别转换为对应的十六进制值,填入 #RRGGBB 中. 推荐在线颜色转换工具:http://www.ecjson.com/rgbhex/ 例子: 输入:rgb(176,114,98) 输出:#B07262 代码如下: function colorRGBtoHex(color) { var rgb = color.split(','); var r = parseInt(rgb[0].split('(')[1]); var g = par