mmvalinezhad
چهارشنبه 02 بهمن 1392, 04:04 صبح
با سلام خدمت دوستان و اساتید محترم
برنامه ای نوشتم که عددی در مبنای 10 را به مبنای دو تبدیل کند.حالا مشکل اینجاست که وقتی عددی مثل 12 را وارد می کنیم به صورت 1100 باید تحوبل دهد اما 11 تحویل می دهد.لطفا در عیب یابی برنامه به من کمک کنید.
با تشکر
#include <stdio.h>
#include <conio.h>
int main()
{
int x,r,c,d,t,X,R,C,D;
printf("Enter: (x) base 10 -> (?) base 2 \n x=");
scanf("%d",&x);
c=0;
t=x;
r=0;
if (x<0)
x=-1*x;
while (d!=0)
{
d=(x/2);
r=x-(2*d);
c=(c*10)+r;
x=d;
}
X=c;
C=0;
R=0;
while (D!=0)
{
D=(X/10);
R=X-(10*D);
C=(C*10)+R;
X=D;
}
if (t<0)
C=-1*C;
printf("\n %d",c);
getch();
return 0;
}
برنامه ای نوشتم که عددی در مبنای 10 را به مبنای دو تبدیل کند.حالا مشکل اینجاست که وقتی عددی مثل 12 را وارد می کنیم به صورت 1100 باید تحوبل دهد اما 11 تحویل می دهد.لطفا در عیب یابی برنامه به من کمک کنید.
با تشکر
#include <stdio.h>
#include <conio.h>
int main()
{
int x,r,c,d,t,X,R,C,D;
printf("Enter: (x) base 10 -> (?) base 2 \n x=");
scanf("%d",&x);
c=0;
t=x;
r=0;
if (x<0)
x=-1*x;
while (d!=0)
{
d=(x/2);
r=x-(2*d);
c=(c*10)+r;
x=d;
}
X=c;
C=0;
R=0;
while (D!=0)
{
D=(X/10);
R=X-(10*D);
C=(C*10)+R;
X=D;
}
if (t<0)
C=-1*C;
printf("\n %d",c);
getch();
return 0;
}