⑴ 用函数实现10进制转化16进制
用函数实现10进制转化16进制,这里没有说明清楚数据的类型和函数的类型,下面假定是把一个int 类型的10进制转化为16进制的字符串。
char* dec2hex(int x,char h[])
{int i=0,t;
do{
t=x%16;
h[i++]=t<10?t+'0':t+'A'-10;
x/=16;
}while(x);
h[i]='\0';
return h;
}
调用语句:
dec2hex(x,h);
puts(h);
或者:
printf("%s\n",dec2hex(x,h));
⑵ 求c语言将十进制数转换为16进制的函数
c语言将十进制数转换为16进制的函数:
#include<stdio.h>
main()
{
int u10;
char u16[10];
int w=0,a,b,i;
printf("请输入一个数字-->");
scanf("%d",&u10);
if(u10==0)
{
u16[0]='0';
w++;
}
else
{
a=u10;
while(a)
{
b=a%16;
if(b<10)
{
u16[w]='0'+b;
}
else
{
u16[w]='A'+b-10;
}
a=a/16;
w++;
}
}
printf("
");
printf("%d(10)转换为16进制数字为:",u10);
for(i=w-1;i>=0;i--)
{
printf("%c",u16[i]);
}
printf("
");
}
(2)脚本如何实现10进制转16进制扩展阅读:
十进制数转换为二进制数方法
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
⑶ 在C语言中如何将10进制转换成16进制
根据10进制转换为16进制的规则,编写C语言程序将10进制数转换为16进制数。
具体实现方法可参考如下程序:
#include<stdio.h>
voidmain()
{
inti,x;//x表示欲转换的10进制数
intdata[10],index=0;//data数组存放转换后的16进制数,index表示下标
scanf("%d",&x);//接受欲转换的10进制数
for(i=0;i<10;i++)//对数组data进行初始赋值操作
data[i]=0;
printf("%d对应的16进制为:",x);
//反复相除取余,并将余数存放在data数组中
while(x>0)
{
data[index]=x%16;
x=x/16;
index++;
}
//逆序输出data数组中的元素,即为10进制数对应的16进制数
for(i=index-1;i>=0;i--)
printf("%d",data[i]);
printf(" ");
}
⑷ 怎样将10进制转换成16进制
手写转换
1
把十进制数除以16,保留余数部分。得到余数以后就不要再往下除得小数了。
2
写下余数部分,在右下角标上16。比如剩下的是11,写成b,右下方写16。查查如何理解十六进制数来了解一下十六进制所用的符号。
3
把之前的整数商再除以16,得到余数部分,然后再在这个余数右下角标上16
4
重复以上步骤,直到得到一个小于16的商。每一次都把余数右下方标上16,注意我们也需要写下最后得到的商(即小于16的商)
,并转为十六进制。
5
把余数和最后的商从左到右按顺序写下,最右是商。得到的十六进制就是这个数,从右往左读。比如读作2f34,实际上的值是43f2。
⑸ 如何用c语言实现10进制转换成16进制
#include<stdio.h>
#defineLEN100
char*decimal2Others(intvalue,char*string,intradix){/*十进制数转任意进制*/
/*除基数取余法:十进制数不断除以进制基数直至为零,每次相除取得余数之逆序即为转换结果*/
intremain,i=1,j=0;
inttemp[LEN];
while(value){/*除基数取余*/
remain=value%radix;
value=value/radix;
temp[i++]=remain;
}
while(--i){/*逆序存储*/
if(temp[i]>9)
string[j++]=temp[i]-10+'a';/*十以上进制处理*/
else
string[j++]=temp[i]+'0';
}
string[j]='