在c语言中用最简单的方法把十进制转化为十六进制

10要用A来表达,后面也是一样的

代码如下:

#include "stdio.h
int main() 

int num=0;
int a[100]; 
int i=0; 
int m=0;
int yushu; 
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
printf("请输入一个十进制整数:"); 
scanf("%d",&num); 
while(num>0) 

yushu=num%16; 
a[i++]=yushu; 
num=num/16; 

printf("转化为十六进制的数为:0x"); 
for(i=i-1;i>=0;i--)//倒序输出 {
m=a[i];
printf("%c",hex[m]); 

printf("\n"); 
}

程序运行结果:

扩展资料

C语言中,十进制转换十六进制,可以先输入十进制整数,然后去拼十六进制,十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头,只需把二进制除以16得到余数去上面定义的hex[16]数组进行取值接可以得到转换的数字。

参考资料:百度百科-十六进制

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-07-27

#include <stdio.h>

void dec2hex(int n)

{if(n>15)dec2hex(n/16);

printf("%c",n%16<10?n%16+'0':n%16+55);

}

int main()

{int n;

scanf("%d",&n);

dec2hex(n);

return 0;

}

 

本回答被网友采纳
第2个回答  2017-07-27
#include <stdio.h>
int main()
{
    int a;
    printf("input a num:");
    scanf("%d",&a);
    printf("HEX:0x%02x",a);   
    return 0;
}

第3个回答  2014-12-19
#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    printf("%X", n);
    return 0;
}

 %x %X就是以十六进制的形式输出一个整数,字母的大小写形式与x相同

追问

return 0在程序表达的意思是

追答

main函数返回值为0,不写的话也不会报错,但这是一个好习惯,所以最好写上。有的程序用main函数实现递归,这时,返回值就有必要了。有的编译器里,没有收到main返回的0,会给出警告

追问

哦哦,谢谢!那还有别的方法吗?

追答

上面的程序不是真正的转换,只是换个形式输出(因为你问的最简单的方法。。。),要是需要转换的话,我写一下代码,稍等。。

追问

谢谢,如果可以能够加一下你的qq嘛!我才学c语言有很多的不懂,可以请教你吗?

追答

可以加这个群,备注里说明一下:181471759。

#include <stdio.h>

int main()
{
    int n, temp, i = 0;
    char result[10];
    scanf("%d", &n);
    if (n < 0)
        result[i++] = '-';
    while (n != 0)
    {
        temp = n % 16;
        n = n / 16;
        if (temp < 10)
            result[i++] = temp + '0';
        else
            result[i++] = temp + 55;
    }
    for (temp = i - 1; temp >= 0; temp--)
        printf("%c", result[temp]);
    return 0;
}
这是代码

本回答被网友采纳
第4个回答  2017-07-27
在printf函数中,你可以用%x格式来输出16进制
如:
int a = 10;
printf("%x", a);