Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pomocy]Kalkulator binarny


-Janos-

Rekomendowane odpowiedzi

Opublikowano

prosze, już jesteś spełniony?

tego też pewnie nie rozumie, ale ważne, że ty się cieszysz

int main()
{
char* numBin = new char [64];
std::cout << "podaj liczbe binarna: ";
std::cin >> numBin;


long numDec = strtol(numBin,NULL, 2);
std::cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin << "\n";

		 system ("pause");
		 return 0;
	 }

 

z tamtego przynajmniej się będzie mógł nauczyć jak to działa

 

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
   cout << "podaj liczbe binarna: ";


   char* numBin = new char;
   cin >> numBin;
   long numDec = strtol(numBin,NULL, 2);
   std::cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin;

   system ("pause");
   return 0;
}

Czego się tak spinasz?

Smutek to skutek chęci w kontekście skutku

raczej niefrasobliwej wzglądu o treści zgryźliwej

ma postać walca co jeździ nam po palcach.

Opublikowano

@3 up & 1 up wielkie dzięki Hmmm a jak odwrócić w tym kodzie proces ?? tzn teraz przelicza z binarnych na dziesiętnea jak zrobić aby przeliczało z dziesiętnych na binarne ??

 

 

+

 

idzie wykorzystać ten kod jakoś??

 

#pragma once
namespace Kalkulatorwindow {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
 Form1(void)
 {
  InitializeComponent();
  //
  //TODO: Add the constructor code here
  //
 }
protected:
 /// <summary>
 /// Clean up any resources being used.
 /// </summary>
 ~Form1()
 {
  if (components)
  {
   delete components;
  }
 }
private: System::Windows::Forms::Button^  button1;
protected:
private: System::Windows::Forms::Button^  button2;
private: System::Windows::Forms::TextBox^  textBox1;
private: System::Windows::Forms::TextBox^  textBox2;
private: System::Windows::Forms::TextBox^  textBox3;
private: System::Windows::Forms::TextBox^  textBox4;
private:
 /// <summary>
 /// Required designer variable.
 /// </summary>
 System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
 /// <summary>
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 /// </summary>
 void InitializeComponent(void)
 {
  this->button1 = (gcnew System::Windows::Forms::Button());
  this->button2 = (gcnew System::Windows::Forms::Button());
  this->textBox1 = (gcnew System::Windows::Forms::TextBox());
  this->textBox2 = (gcnew System::Windows::Forms::TextBox());
  this->textBox3 = (gcnew System::Windows::Forms::TextBox());
  this->textBox4 = (gcnew System::Windows::Forms::TextBox());
  this->SuspendLayout();
  //
  // button1
  //
  this->button1->Location = System::Drawing::Point(228, 81);
  this->button1->Name = L"Binarne";
  this->button1->Size = System::Drawing::Size(75, 23);
  this->button1->TabIndex = 0;
  this->button1->Text = L"Przelicz";
  this->button1->UseVisualStyleBackColor = true;
  //
  // button2
  //
  this->button2->Location = System::Drawing::Point(228, 271);
  this->button2->Name = L"Dziesietne";
  this->button2->Size = System::Drawing::Size(75, 23);
  this->button2->TabIndex = 1;
  this->button2->Text = L"Przelicz";
  this->button2->UseVisualStyleBackColor = true;
  //
  // textBox1
  //
  this->textBox1->Location = System::Drawing::Point(327, 271);
  this->textBox1->Name = L"textBox1";
  this->textBox1->Size = System::Drawing::Size(100, 20);
  this->textBox1->TabIndex = 2;
  //
  // textBox2
  //
  this->textBox2->Location = System::Drawing::Point(327, 81);
  this->textBox2->Name = L"textBox2";
  this->textBox2->Size = System::Drawing::Size(100, 20);
  this->textBox2->TabIndex = 3;
  //
  // textBox3
  //
  this->textBox3->Location = System::Drawing::Point(2, 274);
  this->textBox3->Name = L"textBox3";
  this->textBox3->Size = System::Drawing::Size(100, 20);
  this->textBox3->TabIndex = 4;
  //
  // textBox4
  //
  this->textBox4->Location = System::Drawing::Point(2, 84);
  this->textBox4->Name = L"textBox4";
  this->textBox4->Size = System::Drawing::Size(100, 20);
  this->textBox4->TabIndex = 5;
  this->textBox4->TextChanged += gcnew System::EventHandler(this, &Form1::textBox4_TextChanged);
  //
  // Form1
  //
  this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
  this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
  this->ClientSize = System::Drawing::Size(496, 502);
  this->Controls->Add(this->textBox4);
  this->Controls->Add(this->textBox3);
  this->Controls->Add(this->textBox2);
  this->Controls->Add(this->textBox1);
  this->Controls->Add(this->button2);
  this->Controls->Add(this->button1);
  this->Name = L"Form1";
  this->Text = L"Form1";
  this->ResumeLayout(false);
  this->PerformLayout();
 }
#pragma endregion
private: System::Void textBox4_TextChanged(System::Object^  sender, System::EventArgs^  e) {
   }
};
}

Opublikowano

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
cout << "podaj liczbe binarna: ";


char* numBin = new char;
cin >> numBin;
long numDec = strtol(numBin,NULL, 2);
std::cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin;

system ("pause");
return 0;
}

Przy wpisaniu ciągu większego niż 1 znak (czyli teoretycznie każdego) zostanie nadpisana pamięć za zmienną char. To źle.

 

idzie wykorzystać ten kod jakoś??

to nie jest najlepsze rozumowanie

Weteran
Opublikowano

idzie wykorzystać ten kod jakoś??

 

#pragma once
namespace Kalkulatorwindow {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox4;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(228, 81);
this->button1->Name = L"Binarne";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L"Przelicz";
this->button1->UseVisualStyleBackColor = true;
//
// button2
//
this->button2->Location = System::Drawing::Point(228, 271);
this->button2->Name = L"Dziesietne";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 1;
this->button2->Text = L"Przelicz";
this->button2->UseVisualStyleBackColor = true;
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(327, 271);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(100, 20);
this->textBox1->TabIndex = 2;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(327, 81);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(100, 20);
this->textBox2->TabIndex = 3;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(2, 274);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(100, 20);
this->textBox3->TabIndex = 4;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(2, 84);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(100, 20);
this->textBox4->TabIndex = 5;
this->textBox4->TextChanged += gcnew System::EventHandler(this, &Form1::textBox4_TextChanged);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(496, 502);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void textBox4_TextChanged(System::Object^ sender, System::EventArgs^ e) {
}
};
}

Hmm... Po co podałeś kod wygenerowany przez desinger visuala? i to w dodatku w c#. Nie ma sensu marnować czasu i ingerować w ten kod.

Po drugie c++ != c# zapamiętaj to sobie. Nie przeniesiesz kodu z c++ do c#.

Opublikowano

no okey ale także pytałem się jak odwrócić w tym kodzie proces ?? tzn teraz przelicza z binarnych na dziesiętne jak zrobić aby przeliczało z dziesiętnych na binarne ??

Kij z c# i visualem...

 

 

nie mam pomysłu jak zrobić menu z którego wybiera się czy chce się liczyć binarne >>> dziesiętne czy dziesiętne >>>>> binarne

Opublikowano

Pokombinowane to.

Masz tutaj zwykły kod bez udziwnień:

 

int pow(int in, int exp)
{
   int out = 1;
   while(exp--)
   out*=in;
   return out;
}
int DecBin(int in)
{
   int out = 0, i = 0;
   while(in)
   {
    out += (bool)(in%2)*pow(10, i);
    in/=2;
    i++;
   }
   return out;
}
int BinDec(int in)
{
   int out = 0, i = 0;
   while(in)
   {
	 out += (in%10)*pow(2, i);
	 in /= 10;
	 i++;
   }
   return out;
}
int main()
{
   return BinDec(DecBin(25));
}

Smutek to skutek chęci w kontekście skutku

raczej niefrasobliwej wzglądu o treści zgryźliwej

ma postać walca co jeździ nam po palcach.

Weteran
Opublikowano

nie mam pomysłu jak zrobić menu z którego wybiera się czy chce się liczyć binarne >>> dziesiętne czy dziesiętne >>>>> binarne

na przykład tak:

 


#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
   short odp = 0;
   cout<<".::MENU::.\n1)Decimal to Binary\n2)Binary to Decimal\n";
   cin >> odp;

   switch(odp)
   {
       case 1:
       {
           cout<<"Please type the Binary value: ";

           char num[];
           cin >> num;
           cout<<"="<<strtol(num,NULL, 2)<<endl;
       }
       break;

       case 2:
       {
           cout<<"Please type the Decimal value: ";

           long double num ;
           char wynik[];
           cin >> num;
           itoa(num, wynik, 2);
           cout<<"="<<wynik<<endl;
       }
       break;
   }
}

 

...

Czy mi się zdaję, czy zaraz ktoś napisze, że ten kod jest błędny?

Opublikowano

Te paczajcie nie działa ale po małej edycji ....

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
 short odp = 0;
 cout<<".::MENU::.\n1)Decimal to Binary\n2)Binary to Decimal\n";
 cin >> odp;
 switch(odp)
 {
		 case 1:
		 {
				 cout<<"Please type the Binary value: ";
				 char* num= new char [64];
				 cin >> num;
				 cout<<"="<<strtol(num,NULL, 2)<<endl;
		 }
		 break;
		 case 2:
		 {
				 cout<<"Please type the Decimal value: ";
				 long double num ;
				 char* wynik=new char [64];
				 cin >> num;
				 itoa(num, wynik, 2);
				 cout<<"="<<wynik<<endl;
		 }
		 break;
 }
system("PAUSE");
return (0);
}

 

działa jeszcze tylko pętle dodam z możliwością powrotu do menu lub wyjścia z programu i będzie git wielkie dzięki wszystkim za pomoc panowie jesteście wielcy każdy kto zasłużył ma "like " pozdro dla was..

 

 

A i dzięki za mega szybki kurs C ++ xD ...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...