//#include <cstdlib>
//#include <iostream>
void a2 (int a2) ;
int main()
{
int ch;
printf("(1)2->8(2)2->10(3)2->16 : ") ;scanf("%d",&ch);
a2(ch);
system("PAUSE");
}
void a2 (int a2) {
int a,n,j,i,c[100];
char as2[100];
switch(a2) {
case(1):printf("(1)2->8 : ") ;scanf("%s",&as2);break;
case(2):printf("(2)2->10 : ") ;scanf("%s",&as2);break;
case(3):printf("(3)2->16 : ") ;scanf("%s",&as2);break;}
//計算字串長度 含式 用法 : strlen(字串) 輸出結果為整數
n=strlen(as2);
j=1; a=0;
for(i=0;i<=n-2;i++){
j=j*2;}
for(i=0;i<=n;i++){
c[i]=as2[i];
c[i]=c[i]-48;
c[i]=c[i]*j;
j=j/2;a=a+c[i];}
switch(a2){
case(1):
printf("%o",a) ; break;
case(2):
printf("%d",a) ; break;
case(3):
printf("%x",a) ; break; }}

此程式可選擇3種模式使用
一. 2進->8進
二. 2進->10進
三. 2進->16進
要先選擇模式才能進入模式開始輸入100101...等2進位數字列
本程式採用間接轉換
如"2->16"模式 會先2->10 再從10->到16
最大可輸入100個1.0組成的數字列

arrow
arrow
    全站熱搜

    deskwoodss 發表在 痞客邦 留言(0) 人氣()