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);
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.