PDA

View Full Version : سوال: تبدیل یک عدد به مبنای2(باینری) در C فقط با استفاده از Printf و چهار عمل اصلی



Nice-Boy
یک شنبه 09 اسفند 1388, 12:11 عصر
سلام خدمت دوستان گرامی.
کسی میتونه به من بگه که چه جوری با استفاده از تابع printf و چهار عمل اصلی میشه یک عدد دلخواه رو به مبنای 2 برد؟
من این کد رو برای C میخوام نه ++C
ممنون از کمکتون :لبخندساده:

#target
یک شنبه 09 اسفند 1388, 12:56 عصر
int source;
char* bin;
int i;
while(source > 0)
{
bin[i] = tochar(source % 2);
source /= 2;
i++
}


فکر می کنم یک چیزی مثل کد بالای . خودم امتحان نکردم
تابع tochar هم منظورم تبدیل عدد به کاراکتر هست

Nice-Boy
یک شنبه 09 اسفند 1388, 15:21 عصر
int source;
char* bin;
int i;
while(source > 0)
{
bin[i] = tochar(source % 2);
source /= 2;
i++
}


فکر می کنم یک چیزی مثل کد بالای . خودم امتحان نکردم
تابع tochar هم منظورم تبدیل عدد به کاراکتر هست

ممنون دوست عزیز،
اما من گفتم فقط با printf و چهار عمل اصلی.

amin1softco
یک شنبه 09 اسفند 1388, 17:41 عصر
اینم من نوشتم


#include <stdio.h>
void main(){
int x=5;
for (;;){
printf("%d",x%2);
x /= 2;
if (x<2) break;
}
printf("\n");
}

با تقسیم و باقی مانده
شما اگه باقی مانده رو خودت بدست بیاری یعنی حاصل تقسیم ضرب در 2 - عدد اصلی می تونی این عملگر رو حذفش کنی و به چهار عمل اصلی تبدیلش کنیhttp://www.barnamenevis.org/forum/images/icons/icon3.gif

amin1softco
یک شنبه 09 اسفند 1388, 19:43 عصر
اینم با استفاده از چهار عمل اصلی


#include <stdio.h>
#include <string.h>
void main(){
int x=15;
char n[1],tmp[32]="\0",num[32]="\0";
for (;;){
sprintf(n,"%d",(x-((x/2)*2)));
strcat(tmp,n);
x = x / 2;
if (x<1) break;
}
for(int i=strlen(tmp);i>=0;i--){
sprintf(n,"%c",(tmp[i]));
strcat(num,n);
}
printf("%s\n",num);

}