c语言各进制转换函数 c语言进制之间的转换程序

c语言中各种进制的转换规矩 详细些 最好是计算过程写出来代码如下:(可以输出20位数)#includestdio.h
void transfer(int m,int change)
{
int aa[20],j,saveM=m;
for(j=0;m!=0;j)
{
aa[j]=m%change;
m=m/change;
}
printf("十进制数%d的%d进制形式是:\n",saveM,change);
for(;j!=0;j--)
printf("%d ",aa[j-1]); //注意这空是填aa[j-1],而不是aa[j],因为上面那个循环进行到最后一步时,j还是会运行一次,但是此时并没有给aa[j]赋值,因为循环结束
}
【c语言各进制转换函数 c语言进制之间的转换程序】main()
{
int n,c;
printf("请输入一个整数\n");
scanf("%d",n);
printf("该整数是十进制数,你想将它转化成几进制数呢?\n");
getchar();
scanf("%d",c);
transfer(n,c);
} 功能说明:该函数可以将任意的十进制数转化成任意的N进制数 。转化后的结果,每两位数之间用一个空格隔开 。
希望可以帮到您 , 谢谢!
任意进制数的转换c语言任意进制数转换为十进制,可以用 strtol()函数 。
函数定义:
long int strtol(const char *nptr,char **endptr,int base);
见 网页链接百度百科 。
十进制转换为任意进制,可以用itoa()函数 。
// itoa 例子
#include stdio.h
#include stdlib.h
int main (){
int i;
char buffer[33];
printf ("Enter a number: ");
scanf ("%d",i);//输入整数i
itoa (i,buffer,10);//将i转化为10进制数,存到buffer中
printf ("decimal: %s\n",buffer);//输出打印buffer
itoa (i,buffer,16);//将i转化为16进制数,存到buffer中
printf ("hexadecimal: %s\n",buffer);//输出打印buffer
itoa (i,buffer,2);//将i转化为2进制数,存到buffer中
printf ("binary: %s\n",buffer);//输出打印buffer
return 0;}
c语言16进制转换为10进制数的函数是什么?1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能 。
2、具体实现方法可以参考如下程序:
#include stdio.h
void main()
{
int he;
int re=0;// 保存转换为10进制的结果
int k=16;// 16进制
int n=1;// 位权
scanf("%d", he);// 接收用户输入的16进制数,不含0x前缀
while(he != 0)
{
re= (he)*n;// 取出各位位码值,并乘以对应的位权值
he /= 10;// 去掉16进制数的最低位 , 次低位变为最低位
n *= k;// 位权乘以16
}
printf("%d",re); // 输出转换后的结果
}
求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;
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语言中进制的表示和转换C语言中常用的有十进制、二进制、八进制(用0表示)、十六进制(用0x表示) 。
十进制转二进制:
十进制转二进制采取除于2取余的方式 。
将十进制数除于2得到商和余数,
将商继续除于2一直到商为0,
将得到的余数倒叙排列就是转换为二进制的结果
二进制转十进制:
从右向左用二进制位上的每一个数乘以2的相应次方
如二进制1010转换为十进制:
1010 = 0*(2的0次方) 1*(2的1次方) 0*(2的2次方) 1*(2的3次方) = 28 = 10
八进制转换为二进制
将二进制数自右向左每三位分为一段(若不足三位用0补齐),
然后将二进制的每三位转换为一位八进制数
如将二进制数0101010转换为八进制:
0 101 010不够三位的补0得到
000 101 010 = 052 = 0052(八进制用0表示)
十六进制转换为二进制
将二进制数自右向左每四位分为一段(若不足三位用0补齐),
然后将二进制的每4位转换为一位十六进制数
如将二进制数0101100转换为十六进制:
010 1100不够三位的补0得到
0010 1100 = 2C= 0x2C(十六进制用0x表示)
C语言中的各进制的转换方法C的c语言各进制转换函数,如果要TC的将中文改为English就行c语言各进制转换函数了
#includestdio.h
#includemath.h
void ten_two()
{
int num, i;
int arr[20];
printf("请输入一个十进制数:");
scanf("%d",num);
for( i = 0 ; 1 ; i)
{ //转换为二进制并存入数组
arr[i] = num % 2;
num = num / 2;
if(num == 0)
{
break;
}
}
printf("转换为二进制:"); //打印
for(; i = 0 ; i-- ){
printf("%d",arr[i]);
}
printf("\n");
}
void ten_eight()
{
int num, i;
int arr[20];
printf("请输入一个十进制数:");
scanf("%d",num);
for( i = 0 ; 1 ; i){//转换为八进制并存入数组
arr[i] = num % 8;
num = num / 8;
if(num == 0){
break;
}
}
printf("转换为八进制:"); //打印
for(; i = 0 ; i-- ){
printf("%d",arr[i]);
}
printf("\n");
}
void ten_sixteen()
{
int num, i;
int arr[20];
printf("请输入一个十进制数:");
scanf("%d",num);
for( i = 0 ; 1 ; i){ //转换为二进制并存入数组
arr[i] = num % 16;
num = num / 16;
if(num == 0){
break;
}
}
printf("转换为十六进制:"); //打印
for(; i = 0 ; i-- ){
switch(arr[i]){
case 10 : printf("A");break;
case 11 :printf("B");break;
case 12 :printf("C");break;
case 13 :printf("D");break;
case 14 :printf("E");break;
case 15 :printf("F");break;
default :printf("%d",arr[i]);
}
}
printf("\n");
}
void two_ten()
{
long num;
intb,TheTen=0,Total=0;
printf("请输入一个二进制数(只包含0或1):");
scanf("%ld",num);
while(num)
{
b=num-(int)(num/10)*10;
TheTen =b*pow(2,Total);;
Total;
num=(int)(num/10);
}
printf("转换为十进制:"); //打印
printf("%d",TheTen);
printf("\n");
}
void eight_ten()
{
int num, i;
int arr[20];
printf("请输入一个八进制数(只由0~7之前的数组成):");
scanf("%o",num);
printf("转换为十进制:"); //打印
printf("%d",num);
printf("\n");
}
void sixteen_ten()
{
int num, i;
int arr[20];
printf("请输入一个十六进制数(只由0~9和A~F之前的数组成):");
scanf("%X",num);
printf("转换为十进制:"); //打印
printf("%d",num);
printf("\n");
}
void main()
{
int select;
do{
printf("0 - 退出,1 - 十进制转二进制 , 2 - 十进制转八进制,3 - 十进制转十六进制,4 - 二进制转十进制,5 - 八进制转十进制,6 - 十六进制转十进制\n");
scanf("%d",select);
switch(select){
case 1 : ten_two(); break; //十进制转二进制
case 2 : ten_eight(); break; //十进制转八进制
case 3 : ten_sixteen(); break; //十进制转十六进制
case 4 : two_ten(); break; //二进制转十进制
case 5 : eight_ten(); break; //八进制转十进制
case 6 : sixteen_ten(); break; //六十进制转十进制
default : printf("您的输入有误,请重新输入!"); break;
}
if(select == 0)
{break;}
}while(1);
}
关于c语言各进制转换函数和c语言进制之间的转换程序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读