English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

撰寫一個轉換數字基底的程式
binary to octnary and octnary to binary

2007-06-10 17:07:09 · 2 個解答 · 發問者 血戰BLOOD 6 in 電腦與網際網路 程式設計

2 個解答

//Power by Visual Studio 2005
#include
#include
#include
#include
int btoo(int LEN, char *BIN){
char temp[32];
int i,dec,oct;
for(i=0;i temp[i]=BIN[LEN-1-i];
}
temp[i]='\0';
for(i=0,dec=0;i dec+=(temp[i]-48)*(int)pow(2,i);
}
for(i=0,oct=0;dec%8!=0;i++){
oct+=(dec%8)*(int)pow(10,i);
dec/=8;
}
return oct;
}
char *otob(char *buffer, int OCT){
char temp[32];
int i,dec,len;
for(i=0,dec=0;OCT%10!=0;i++){
dec+=(OCT%10)*(int)pow(8,i);
OCT/=10;
}
for(i=0;dec!=0;i++){
temp[i]=(dec%2)+48;
dec/=2;
}
temp[i]='\0';
len=(int)strlen(temp);
for(i=0;i buffer[i]=temp[len-1-i];
}
buffer[i]='\0';
return buffer;
}
int main(int argc, char* argv[]){
//==========START==========//
char binary[32]="101010",buffer[32];
int oct=77;
printf("Binary= %s\n",binary);
printf("Oct= %d\n",btoo((int)strlen(binary), binary));
printf("Oct= %d\n",oct);
printf("Binary= %s\n",otob(buffer, oct));
//==========END==========//
system("PAUSE");
return 0;
}

2007-06-10 18:35:46 · answer #1 · answered by Big_John-tw 7 · 0 0

奇怪 ! 小綿羊 ~ 前輩 :
char binary[32]="101010" 的二進位值改成 "1000" 應該顯示 10(八進位) 才對呀 ! 怎會顯示為 0 呢 ?

2007-06-11 15:44:18 · answer #2 · answered by 達仔 4 · 0 0

fedest.com, questions and answers