C語言源碼: [cpp] #include<stdio.h> #include<string.h> int main() { char s[40]; int a[40],t[200],i,len,k,x,top,b[40]; while(scanf("%s",s)!=EOF) { top=0; k=0; getchar(); len=(int)strlen(s); i=0; while(i<len) { a[len-1-i]=s[i]-'0'; i++; }//將s中數賦值到a中,並且逆置,高位在數組a末尾 while(a[len-1]==0) len--; if(len<=0) printf("0\n"); else { while(len>0) { k=0; for(i=len-1;i>=0;i--) { x=k*10+a[i]; b[i]=x/2; k=x%2; }//將a中d數除以2,除數放在b中 t[top++]=a[0]%2;//余數放在t中 for(i=0;i<len;i++) a[i]=b[i]; if(a[len-1]==0) len--; } for(i=top-1;i>=0;i--) printf("%d",t[i]); printf("\n"); } } }