PDA

View Full Version : سوال برای کمک به نوشتن برنامه برای تبدیل عدد بع باینری وبلعکس



soshan
یک شنبه 14 آذر 1395, 13:48 عصر
با سلام به همه گی و باتشکر از همه زحمتکشان سایت

من به تازه ترم اول این رشته هسم و حقیقتا چیزه زیادی بلد نیسم برای همین این سوال شاید ساده را دارم میپرسم البته قبلش سرچ کردم چند تا کد هم در جاهای محتلفی دیدم ولی نتونستم ازشون حواب بگیرم برای همین این پست رو دادم من نیاز به کدهای تبدیل باینری به 10 تایی و بلعکس و یک کد ماشین حساب دارم یک کد ساده خودم نوشتم ولی جواب نمیدهد که اینجا قرار میدهم نادوستان عزیز راهنماییم نمایید.
با تشکر

#include <stdio.h>#include <conio.h>
#include <stdio.h>
void main(void)
{
int a;
int i = 1;
int sum = 0;
int n = 0;
int b, k, c;
scanf("%d",&a);
printf("%d", a);
for(;;)
b = a % 10;
k = a / 10;
if (k >= 10)
{
c = b * 2 ^ n;
sum = c + sum;
n++;
i++;
a = k;
}
else
{
k = k + 1;
sum = k + sum;
printf("sum: %d", &sum);
getch();
}
} //end main

soshan
یک شنبه 14 آذر 1395, 20:13 عصر
دوستان کسی نیست کمک کنه به من

soshan
دوشنبه 15 آذر 1395, 00:58 صبح
من میخواستم بدونم کلا کسی جواب نمیده یا سوال من سخته یا بد نوشتم/

Symbian Master
دوشنبه 15 آذر 1395, 02:04 صبح
با سلام به همه گی و باتشکر از همه زحمتکشان سایت

من به تازه ترم اول این رشته هسم و حقیقتا چیزه زیادی بلد نیسم برای همین این سوال شاید ساده را دارم میپرسم البته قبلش سرچ کردم چند تا کد هم در جاهای محتلفی دیدم ولی نتونستم ازشون حواب بگیرم برای همین این پست رو دادم من نیاز به کدهای تبدیل باینری به 10 تایی و بلعکس و یک کد ماشین حساب دارم یک کد ساده خودم نوشتم ولی جواب نمیدهد که اینجا قرار میدهم نادوستان عزیز راهنماییم نمایید.
با تشکر

#include <stdio.h>#include <conio.h>
#include <stdio.h>
void main(void)
{
int a;
int i = 1;
int sum = 0;
int n = 0;
int b, k, c;
scanf("%d",&a);
printf("%d", a);
for(;;)
b = a % 10;
k = a / 10;
if (k >= 10)
{
c = b * 2 ^ n;
sum = c + sum;
n++;
i++;
a = k;
}
else
{
k = k + 1;
sum = k + sum;
printf("sum: %d", &sum);
getch();
}
} //end main
سلام


/*
* C++ program to convert binary number into decimal
*/
#include<iostream>
using namespace std;

int main()
{
long bin, dec = 0, rem, num, base = 1;

cout << "Enter the binary number(1s and 0s) : ";
cin >> num;
bin = num;
while (num > 0)
{
rem = num % 10;
dec = dec + rem * base;
base = base * 2;
num = num / 10;
}
cout << "The decimal equivalent of " << bin << " : " << dec << endl;
return 0;
}

Symbian Master
دوشنبه 15 آذر 1395, 02:10 صبح
برنامه ی بالا، برای تبدیل باینری به دسیمال بود.
این برنامه، برای تبدیل دسیمال به باینری هست:
#include <iostream>
using namespace std;

void binary(int);

int main(void) {
int number;

cout << "Please enter a positive integer: ";
cin >> number;
if (number < 0)
cout << "That is not a positive integer.\n";
else {
cout << number << " converted to binary is: ";
binary(number);
cout << endl;
}
}

void binary(int number) {
int remainder;

if(number <= 1) {
cout << number;
return;
}


remainder = number%2;
binary(number >> 1);
cout << remainder; }

soshan
دوشنبه 15 آذر 1395, 16:05 عصر
سلام


/*
* C++‎‎‎ program to convert binary number into decimal
*/
#include<iostream>
using namespace std;
int main()
{
long bin, dec = 0, rem, num, base = 1;
cout << "Enter the binary number(1s and 0s) : ";
cin >> num;
bin = num;
while (num > 0)
{
rem = num % 10;
dec = dec + rem * base;
base = base * 2;
num = num / 10;
}
cout << "The decimal equivalent of " << bin << " : " << dec << endl;
return 0;
}


باسلام.عرض ادبرنامه درخط دوم ارور میدهد

Symbian Master
دوشنبه 15 آذر 1395, 22:30 عصر
باسلام.عرض ادبرنامه درخط دوم ارور میدهد
سلام
با Turbo C و محیط های تحت DOS کار می کنید؟ اگر اینطور هست؛ بنویسید:
#include <stdio.h>#include <conio.h>
#include <stdio.h>
int main(void)
{
long bin, dec = 0, rem, num, base = 1;
cout << "Enter the binary number(1s and 0s) : ";
cin >> num;
bin = num;
while (num > 0)
{
rem = num % 10;
dec = dec + rem * base;
base = base * 2;
num = num / 10;
}
cout << "The decimal equivalent of " << bin << " : " << dec << endl;
}

soshan
سه شنبه 16 آذر 1395, 21:01 عصر
سلام
با Turbo C و محیط های تحت DOS کار می کنید؟ اگر اینطور هست؛ بنویسید:
#include <stdio.h>#include <conio.h>
#include <stdio.h>
int main(void)
{
long bin, dec = 0, rem, num, base = 1;
cout << "Enter the binary number(1s and 0s) : ";
cin >> num;
bin = num;
while (num > 0)
{
rem = num % 10;
dec = dec + rem * base;
base = base * 2;
num = num / 10;
}
cout << "The decimal equivalent of " << bin << " : " << dec << endl;
}
با تشکر از شما دوست عزیز تصویر ارور پیوست شد

soshan
سه شنبه 16 آذر 1395, 21:18 عصر
سلام


/*
* C++‎‎‎ program to convert binary number into decimal
*/
#include<iostream>
using namespace std;
int main()
{
long bin, dec = 0, rem, num, base = 1;
cout << "Enter the binary number(1s and 0s) : ";
cin >> num;
bin = num;
while (num > 0)
{
rem = num % 10;
dec = dec + rem * base;
base = base * 2;
num = num / 10;
}
cout << "The decimal equivalent of " << bin << " : " << dec << endl;
return 0;
}


با سلام و تشکر مجدد این یکی با این ویرایش راه افتاد

#include "stdafx.h"#include "iostream"
#include "stdio.h"
#include "conio.h"




using namespace std;


int main()
{


long bin, dec = 0, rem, num, base = 1;
cout << "Enter the binary number(1s and 0s) : ";
cin >> num;
bin = num;
while (num > 0)
{
rem = num % 10;
dec = dec + rem * base;
base = base * 2;
num = num / 10;
}
cout << "The decimal equivalent of " << bin << " : " << dec << endl;
_getch();
return 0;
}

soshan
سه شنبه 16 آذر 1395, 21:31 عصر
با تشکر هردو برنامه با کمی دست کاری جواب میدهند ولی هردوی اونها فقط باینری رو به دسیمال تبدیل میکنند
بازهم بابت پیگیری شما بزرگوار متشکرم

Symbian Master
سه شنبه 16 آذر 1395, 21:45 عصر
با تشکر از شما دوست عزیز تصویر ارور پیوست شد
خوشحالم که مشکلتون حل شد.
تصویر رو دیدم.
وقتی برنامه از کلماتی مانند cin و cout خطا میگیره؛ 2 تا راه دارید:
1- یا اول برنامه (قبل از int main)، عبارت ;using namespace std رو اضافه کنید.
2- و یا به جای cin و cout و endl بنویسید: std::cin و std::cout و std::endl

soshan
سه شنبه 16 آذر 1395, 22:11 عصر
من اینو پیدا کردم خیلی کامله اینجا میزارم تبدیل عدد دسیمال به مبناهای 2 تا 16 رو داره واسه همین قرار دادم تا شخص دیگری که مثل من اول راهه بتونه اینجا استفاده کنه

منبع:
http://www.cloob.com


#include "stdafx.h"#include <stdio.h>


char *conv_base(long number, int base);


int main()


{


int base;


long number;


char yn;


do


{


do


{


printf("\n\nEnter an integer number : ");


scanf_s("%ld", &number);


} while (number < 1);


do


{


printf("\nEnter the base (2-16) : ");


scanf_s("%d", &base);


} while (base < 2 || base > 16);




printf("\nThe converted number is : %s", conv_base(number, base));


printf("\n\n Any more (y/n) : ");


getchar();


yn = getchar();


} while (!(yn == 'n' || yn == 'N'));




return 0;


}






char *conv_base(long number, int base)


{


long remain;


int n = 0, k = 0;


static char temp[32], result[32];


static char *digit = "0123456789ABCDEF";


do


{


remain = number % base;


number = number / base;


temp[k++] = digit[remain];


} while (number > 0);


while (k >= 0)


{


result[n++] = temp[--k];
}




result[n - 1] = 0;


return (result);


}

حالا نیاز به یک ماشین حساب باینری دارم