转换进制的函数c语言 进制转换器c语言
求c语言将十进制数转换为16进制的函数
c语言将十进制数转换为16进制的函数:
成都创新互联专业为企业提供通许网站建设、通许做网站、通许网站设计、通许网站制作等企业网站建设、网页设计与制作、通许企业网站模板建站服务,十多年通许做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
#includestdio.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(b10)
{
u16[w]='0'+b;
}
else
{
u16[w]='A'+b-10;
}
a=a/16;
w++;
}
}
printf("\n");
printf("%d(10)转换为16进制数字为:",u10);
for(i=w-1;i=0;i--)
{
printf("%c",u16[i]);
}
printf("\n");
}
扩展资料:
十进制数转换为二进制数方法
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
参考资料:
百度百科-十进制
C语言中怎样调用函数将十进制转换成二进制?
1、打开visualC++6.0-文件-新建-文件-C++SourceFile。
2、输入预处理命令和主函数:
#includestdio.h /*输入输出头文件*/
voidmain()/*空类型:主函数*/
3、定义变量和数组的数据类型并输入一个十进制:
intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/
printf("输入一个十进制:");/*输出文字提示*/
scanf("%d",x); /*输入一个十进制数字*/
k=-1;/*将-1赋给k*/
4、用除R取余倒计法将十进制的数转化成二进制的数:
do/*用循环将十进制的数转化成二进制的数*/
{
r=x%2;/*用除R取余倒计法计算二进制*/
b[++k]=r;/*将值赋给数组*/
x/=2;/*将原数除2*/
}while(x=1);
5、输出结果:
for(i=k;i=0;i--) /*将上面倒计的数正回来*/
printf("%d",b[i]);/*输出结果*/
printf("\n");
6、完整的源代码:
#includestdio.h /*输入输出头文件*/
voidmain()/*空类型:主函数*/
{
intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/
printf("输入一个十进制:");/*输出文字提示*/
scanf("%d",x); /*输入一个十进制数字*/
k=-1;/*将-1赋给k*/
do/*用循环将十进制的数转化成二进制的数*/
{
r=x%2;/*用除R取余倒计法计算二进制*/
b[++k]=r;/*将值赋给数组*/
x/=2;/*将原数除2*/
}while(x=1);
for(i=k;i=0;i--) /*将上面倒计的数正回来*/
printf("%d",b[i]);/*输出结果*/
printf("\n");
}
求十进制转换二进制C语言代码
求十进制转换二进制C语言代码代码如下:
#includestdio.h
#define NR(sizeof(int)*8) //二进制位的个数
voiddeciToBin(intnum);//十进制转换为二进制函数声明
/*主函数*/
intmain(void)
{
intnum;
fprintf(stdout,"请输入一个正整数:");
/*获取并检查用户输入*/
while(1)
{
if(fscanf(stdin,"%d",num)!=1)
{
fprintf(stderr,"输入错误!请重新输入:");
while(getchar()!='\n');//去掉多余的非法字符
continue;
}
elseif(num0) //输入的数不能为负数
{
fprintf(stderr,"请输入错误!请输入正整数:");
continue;
}
else
break;
}
fprintf(stdout,"对应二进制为:");
#if1/*方法一:不使用递归*/
charbitArr[NR];
inti=-1;
/*算法:栈的数学模型*/
do{
i+=1;
bitArr[i]=num%2;
num/=2;
}while(num!=0);
/*逆序打印*/
for(i;i=0;i--)
{
fprintf(stdout,"%d",bitArr[i]);
}
fputc('\n',stdout);
#else/*方法二:使用递归*/
if(num==0)
{
fprintf(stdout,"0\n");
}
else
{
deciToBin(num); //调用第归函数
fputc('\n',stdout);
}
#endif
return0;
}
/*
*@函数名:deciToBin
*@函数功能:实现十进制转换为二进制
*@参数:需要转换的十进制整数
*/
voiddeciToBin(intnum)
{
/*第归结束条件*/
if(num==0)
{
return;
}
/*第归调用*/
deciToBin(num/2);
/*逆序打印*/
fprintf(stdout,"%d",num%2);
}
扩展资料:
使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)方法:
#includestdio.h
#includestring.h
#includestdlib.h
intTenNum(chara[],intB);
voidNumchange(intm,intB);
intTenNum(chara[],intB)
{
intlen,i,num;
intsum=0;
len=strlen(a);
for(i=0;ilen;i++)
{
if(a[i]='0'a[i]='9')
num=a[i]-'0';
elseif(a[i]='A'a[i]='F')
num=a[i]-'A'+10;
sum=sum*B+num;
}
returnsum;
}
voidNumchange(intm,intB)
{
intn;
if(m)
{
Numchange(m/B,B);
n=m%B;
if(n10)
printf("%d",n);
else
printf("%c",n+55);
}
}
intmain()
{
intB,b;
chara[20];
printf("请输入待转换数的进制(2-16):");
do{
scanf_s("%d",B);
}while(B2B16);
printf("请输入待转换数:");
getchar();
gets_s(a);
intm=TenNum(a,B);
printf("请输入需要转成几进制数(2-16):");
do{
scanf_s("%d",b);
}while(B2B16);
printf("%d进制数%s转换为%d进制数的结果为:",B,a,b);
Numchange(m,b);
printf("\n");
system("pause");
return0;
}
C语言中的进制怎么转换啊
任意进制之间的进制转换。需要考虑高精度整形的设计,用数组模拟一个整形变量。一位一位的进行进制转换,算法思想和十进制转换到二进制相同,除以目标进制,余数为低位。这种进制转换实用性不强,一般出现在计算机程序竞赛当中。
8,10,16进制的转换。在C语言中有不少函数都能实现上面几种进制之间的进制转换。
推荐其中的sprintf/sscanf函数。
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符
若想输出'%'本身时, 请使用'%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
转换字符
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
例程(16进制和10进制之间的转换):
#include stdio.h
#include limits.h
int main()
{
char s[100] = {0};
sprintf(s, "%x", INT_MAX);
printf("%s\n", s); // 7fffffff
char str[100] = "7fffffff";
int i = 0;
sscanf(str, "%x", i);
printf("%d\n", i); // 2147483647
return 0;
}
当前标题:转换进制的函数c语言 进制转换器c语言
网站地址:http://ybzwz.com/article/ddioods.html