自定义函数实现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:
            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 int_hex(unsigned int n)
{
    int i = n % 16;
    if(n >= 16)
       int_hex(n / 16);
    printf("%c", hex_char(i));   //后序输出
} 

int main()
{
    /*int a = 20;
    printf("%x\n", a);   //%x直接输出16进制
    return 0;
    */
    int a = 15;
    scanf("%d", &a);
    int_hex(a);    //void的函数直接调用
    printf("%c", a);   //%c输出单个字符
    return 0;
}

原文地址:https://www.cnblogs.com/yangxiaoqin/p/8410603.html

时间: 2024-07-30 16:16:11

自定义函数实现10进制转化为16进制的相关文章

SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制 刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题 所以就上网搜了一下,然后改了改,下面就是函数: 1 Create Function IntToHexLength(@Num int,@HxLength int) 2 returns varchar(16) 3 as 4 begin 5 declare @Mods int,@res varchar(16),@Length int 6 s

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("多少进制

数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制

int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.hashCode: "+arr4.hashCode()); //将hashCode值转化为16进制的两种方式 System.out.println(Integer.toString(366712642,16));//将整数转化为16进制的数为:15db9742 System.out.println(I

c# 字符串(含有汉字)转化为16进制编码(转)

public static string Str2Hex(string s) { string result = string.Empty; byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s); for(int i = 0; i < arrByte.Length; i++) { result += "&#x" + System.Convert.ToString(

Java 将字节转化为16进制字符串

很多时候我们需要将字节数组转化为16进制字符串来保存,例如做I/O字节流操作的时候,尤其在很多加密的场景中应用都比较广泛. Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte 转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 从上面可以看出

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

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

16进制转化为2进制 【位运算】

#include <stdio.h> int  main() {    int i,a; while (~scanf("%x", &a)){ for(i=15;i>=0;i--) printf("%1d", a&1<<i?1:0);  //注意优先级,先移位<<,结果再与a按位与 printf("\n"); }return 0; } 16进制转化为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