c语言(进制转换)
来源:互联网 发布:淘宝怎么刷信用 编辑:程序博客网 时间:2024/06/05 17:26
#include<stdio.h>
#include<string.h>
int int_pow(int x,int y)//用于计算倍数
{
int i,result=1;
for(i=1;i<=y;i++)
{
result*=x;
}
return result;
}
void dtox(int dnum,int jz)//十进制转换成任意进制
{
char xnum[100];
int i=0,j=0;
while(dnum>=jz)
{
if(dnum%jz<=9)
xnum[j++]=dnum%jz;//+48;
else
xnum[j++]=dnum%jz-10+'A';//超过9
dnum=dnum/jz;
}
if(dnum<=9)
xnum[j]=dnum+'0';//加上字符零是为了将数字变为字符
else
xnum[j]=dnum-10+'A';
for(i=j;i>=0;i--)
{
printf("%c",xnum[i]);
}
}
int xtod(char num[],int jz)//将输入的数转换为十进制
{
int dnum=0,i,n=0,b;
for(i=0;;i++)
{
if(num[i]=='\0')break;
else n++;//计算num的长度
}
for(i=n-1;i>=0;i--)
{
if(num[n-i-1]>='a')
b=num[n-i-1]-'a'+10;
else if(num[n-i-1]>='A')
b=num[n-i-1]-'A'+10;
else
b=num[n-i-1]-'0';//减去字符零是为了将字符变为数字
dnum=dnum+b*int_pow(jz,i);
}
return dnum;
}
int main()
{
char num[100];
int jz1,jz2;
printf("请输入要转换的数:");
scanf("%s",num);
printf("输入数的进制:");
scanf("%d",&jz1);
printf("要转化得进制:");
scanf("%d",&jz2);
dtox(xtod(num,jz1),jz2);
getchar();
return 0;
}
#include<string.h>
int int_pow(int x,int y)//用于计算倍数
{
int i,result=1;
for(i=1;i<=y;i++)
{
result*=x;
}
return result;
}
void dtox(int dnum,int jz)//十进制转换成任意进制
{
char xnum[100];
int i=0,j=0;
while(dnum>=jz)
{
if(dnum%jz<=9)
xnum[j++]=dnum%jz;//+48;
else
xnum[j++]=dnum%jz-10+'A';//超过9
dnum=dnum/jz;
}
if(dnum<=9)
xnum[j]=dnum+'0';//加上字符零是为了将数字变为字符
else
xnum[j]=dnum-10+'A';
for(i=j;i>=0;i--)
{
printf("%c",xnum[i]);
}
}
int xtod(char num[],int jz)//将输入的数转换为十进制
{
int dnum=0,i,n=0,b;
for(i=0;;i++)
{
if(num[i]=='\0')break;
else n++;//计算num的长度
}
for(i=n-1;i>=0;i--)
{
if(num[n-i-1]>='a')
b=num[n-i-1]-'a'+10;
else if(num[n-i-1]>='A')
b=num[n-i-1]-'A'+10;
else
b=num[n-i-1]-'0';//减去字符零是为了将字符变为数字
dnum=dnum+b*int_pow(jz,i);
}
return dnum;
}
int main()
{
char num[100];
int jz1,jz2;
printf("请输入要转换的数:");
scanf("%s",num);
printf("输入数的进制:");
scanf("%d",&jz1);
printf("要转化得进制:");
scanf("%d",&jz2);
dtox(xtod(num,jz1),jz2);
getchar();
return 0;
}
0 0
- c语言(进制转换)
- hdu2031 进制转换(C语言)
- C语言-进制转换
- C语言 进制转换
- C语言进制转换
- 进制转换C语言
- C语言之 进制转换(循环)
- c语言之进制转换(栈实现)
- 用链栈解决正整数进制转换问题(C语言)
- c语言中的进制转换
- 2-36进制转换 C语言
- C语言中的各种进制转换
- 用C语言实现进制转换
- IOS之C语言进制转换
- 4.c语言的进制转换
- C语言实现进制转换
- C语言习题5.18--进制转换
- C语言基础 进制的转换
- 取消事件的冒泡
- 从上往下打印二叉树
- 函数调用栈
- Handler类源码
- ZOJ 3962 Seven Segment Display(*数位DP 总结)
- c语言(进制转换)
- 如何修改jar包中的class文件?
- EasyDarwin开源流媒体服务器进行RTSP转发过程中将sdp由文件存储改成内存索引
- MPI快速入手編程
- 记录自已学习之单链表(遍历)
- IMWeb训练营-组件化select选择菜单
- Oracle数据类型
- 浅谈拒绝服务攻击的原理与防御(3):反射DDOS攻击利用代码
- 二一、node,less安装指南