?? 幾個進制之間的轉化.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 + -