
正文
C语言进展转换函数,C语言转换函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
十进制转化二进制,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");
}
相关问答
Q1: c语言 所有类型转换函数
在赋值表达式中,当左右两边数据类型不同时,右边的数据类型应变为左值(变量)的数据类型,同时编译器也能自动进行类型转换,将低字节数据类型转换为高字节类型,例如:int转换为long
int,当不同的数据类型相互赋值时还有精度缺失问题,例如:将int赋给char,只是将低八位(一个字节)赋给它,希望可以帮到你!
Q2: C语言中字符串和整数小数相互转换的函数都有什么?
字符串转换函数如下:
字符串转换为整数 atoi
2.字符串转换为长整数 atol
3.字符串转换为浮点数 strtod
4.字符串转换为长整数 strtol
5.字符串转换为无符号长整型 strtoul
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
Q3: C语言中各进制的转换问题
用一个函数搞定
任意进制间的转换
#include stdio.h
#include string.h
#include math.h
/*该函数可以实现小于整型数据的任意进制之间转换*/
/*以下函数将a进制数s转换成b进制并输出*/
void f(int a,int b,char s[])
{ char r[17];
int i,n,t,k;
for(n=strlen(s)-1,i=t=0;*(s+i)!='\0';i++,n--) /*这里先转换成十进制数*/
{ if(*(s+i)='9')
t+=(*(s+i)-'0')*int(pow(a,n));
else
t+=(*(s+i)-'A'+10)*int(pow(a,n));
}
for(i=0;t!=0;i++) /*再转换成b进制*/
{ k=t%b;
if(k9)r[i]='A'+k-10;
else r[i]='0'+k;
t/=b;
}
r[i]='\0';
s=strrev(r);
printf("%s",s);
}
/*******************************
*******************************
******************************/
Q4: C语言调用函数编写把十进制整数n转换成十六进制怎么编程?
思路:十进制整数转换为十六进制整数采用"除16取余,逆序排列"法。
具体做法是:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为十六进制数的低位有效位,后得到的余数作为十六进制数的高位有效位,依次排列起来。
参考代码:
#include "stdio.h"
int main()
{
int num,a[100],i=0,m=0;
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",num);
while(num0)
{
a[i++]=num%16;
num=num/16;
}
printf("转化为十六进制的数为:");
for(i=i-1;i=0;i--)//倒序输出
{
m=a[i];
printf("%c",hex[m]);
}
printf("\n");
}
/*
运行结果:
17
转化为十六进制的数为:11
*/






