成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

c语言十进制转十六进制

Q1:C语言编程:怎么把一个十进制数转换成为一个十六进制数?

第一种:用来糊弄老师的,输入一个数采用16进制格式输出
#include
int main()
{
int num = 0;
scanf("%d", &num);
printf("%x", num);
return 0;
}
第二种:
#include
#include
char oNumTable[6] = {A, B, C, D, E, F};
void dToO(int, char*);
int main()
{
int dNum;
char oNum[100] = {0};
//输入一个十进制数
scanf("%d", &dNum);
//调用转换函数,将十进制转换成以字符串表示的十六进制
dToO(dNum, oNum);
//输出以字符串表示的16进制数据
printf("%s\n", oNum);
return 0;
}
void dToO(int dNum, char* oNum)
{
char temp[100] = {0};
for (int i = 0; (dNum) && (i < 100) ; i++) {
temp[i] = (dNum % 16);
if (temp[i] > 9) {
temp[i] = oNumTable[temp[i] - 10];
}
else{
temp[i] += 0;
}
dNum /= 16;
}
char* p = temp;
while (*(p+1)) p++;
for (int i = 0; p != temp - 1; i++, p--) {
oNum[i] = *p;
}
}

Q2:C语言十进制转十六进制

其实根本不用这个的,输出函数printf有X是代表输出16进制的数,可以直接调用,那样就能将10进制变成16进制!例如:
#include
main ()
{
int a;
scanf ("%d",&a);
printf ("%X",a);
}WwW.baZHIshI.Co∽M

Q3:C语言怎么将一个十进制的整数转换成十六进制的字符串?

要转成字符串 其实不需要自己写多少程序 借用sprintf就可以了
char s[20];
int a;
scanf("%d",&a);
sprintf(s, "%x", a);
这样 s中就是a的16进制字符串了。

Q4:为什么C语言整型常量十进制形式的类型与八进制、十六进制的不一样?

现在有3个数,分别是十进制10,八进制10和16进制10。我们知道转换成在10进制下,他们分别是10,8,16。但是编译器不知道你这个10到底是什么数制的啊,所以要加上前后缀,有所区别。

Q5:c语言十六进制转十进制的算法怎么写

.2进制八进制和十六进制到10进制:
从2进制八进制和十六进制数的最低位(最右端第n=1位),依次将乘以进制数的n-1次方相加
例如:二进制数11010转十进制 (我用m^n表示m的n次方)
0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 1*2^4=26;
八进制数20转十进制 0*8^0+2*8^1=16;
所以算法也是类似,这代码是借鉴别人的。如下:
#include
#define N 10、
int HtoD(char *s)
{
int i,d=0;
char t;
for(i=0; s[i]!=\0; i++)
{
d=d*16;
t=s[i];
if(t>=0 && t<=9)
d=d+t-0;
else if(t>=a && t<=f)
{
d=d+t-a+10;
}
else if(t>=A && t<=F)
{
d=d+t-A+10;
}
}
return d;
}

Q6:C语言十进制转十六进制数

#include
char tohex(int n)
{
if(n>=10 && n<=15)
{
return A+n-10;
}
return 0+n;
}
void dec2hex(int n,char *buf)
{
int i=0;
int mod;
while(n)
{
mod = n%16;
buf[i++]=tohex(mod);
n=n/16;
}
//得进行反序。
int j,k;
for(j=0,k=i-1;j {
char temp;
temp = buf[j];
buf[j] = buf[k];
buf[k] = temp;
}
buf[i]=\0;
}
intmain()
{
int n;
scanf("%d",&n);
char a[32];
dec2hex(n,a);
printf("%s",a);
return 0;
}