PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : الگوریتم تبدیل اعداد به مبنای دو



Y@SiN
10-07-2009, 12:00 AM
به این روش هم می شه بدون نیاز به برگردوندن:

کد:


#include<stdio.h>
int main()
{
int n,m=0,q=0;
long int s=0,l=1;
printf("\nEnter decimal number");
scanf("%d",&n);
do
{
q=n/2;
m=n%2;
s+=l*m;
n=q;
l=l*10;
}
while(n>1);
s=s+n*l;
printf("%ld",s);
}
باقیمانده ی اول رو در یک ضرب می کنیم دومی را در 10 سومی در 100 و .... و مقادیر را به یک متغیر مانند s اضافه می کنیم.
البته این روش اشکالاتی هم داره:
برای اعداد بزرگ به انواع عددی بزرگ نیاز هست.با int اعداد تا 31 ، با long int اعداد تا 1023 و با double اعداد تا 32767 قابل تبدیل اند.