📄 几个进制之间的转化.cpp
字号:
/*.......注意本程序对其它进制转化为十进制的时候字符串长度不得超出100位本程序还可以进行适当的修改可以在任何
的两个进制之间进行转化,在这里不进行仔细的分析只给出了10进制也其他进制之间的转化和其它进制与十进制之间的转化*/
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
#include "math.h"
#include "string.h"
main()
{
int a,j,i,n,m,b[50],k;
char *q;
cout<<"/*0代表10->2;1代表10->8;2代表10->16;3代表2->10,4代表8->10,5代表16->10)*/\n请输入所需转化的代号:";
cin>>a;
if(a==0)
{
cout<<"请输入要转化的数字:";
cin>>n;
j=1;
i=0;
while(j!=0)
{
j=n/2;
b[i]=n%2;
n=j;
i++;
}
k=i-1;
while(k>=0)
{
printf("%d",b[k]);
k--;
}
}
else if(a==1)
{
cout<<"请输入要转化的数字:";
cin>>n;
j=1;
i=0;
while(j!=0)
{
j=n/8;
b[i]=n%8;
n=j;
i++;
}
k=i-1;
while(k>=0)
{
printf("%d",b[k]);
k--;
}
}
else if(a==2)
{
cout<<"请输入要转化的数字:";
cin>>n;
j=1;
i=0;
while(j!=0)
{
j=n/16;
b[i]=n%16;
n=j;
i++;
}
k=i-1;
while(k>=0)
{
if(b[k]>=10 && b[k]<=15)
printf("%c",b[k]+55);
else
printf("%d",b[k]);
k--;
}
}
else if(a==3)
{
char c[100];
cout<<"请输入要转化的字符串:";
scanf("%s",c);
m=strlen(c);
int s=0,d;
for(i=0;i<=m-1;i++)
{
d=c[m-i-1]-48;
s=s+d*pow(2,i);
}
cout<<s;
}
else if(a==4)
{
char c[100];
cout<<"请输入要转化的字符串:";
scanf("%s",c);
m=strlen(c);
int s=0,d;
for(i=0;i<=m-1;i++)
{
d=c[m-i-1]-48;
s=s+d*pow(8,i);
}
cout<<s;
}
else if(a==5)
{
char c[100];
cout<<"请输入要转化的字符串:";
scanf("%s",c);
m=strlen(c);
int s=0,d;
for(i=0;i<=m-1;i++)
{
if(c[m-i-1]>='A' && c[m-i-1]<='F')
d=c[m-i-1]-55;
else
d=c[m-i-1]-48;
s=s+d*pow(16,i);
}
cout<<s;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -