Prevod Dec -> Bin – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prevod Dec -> Bin – C / C++ – Fórum – Programujte.comPrevod Dec -> Bin – C / C++ – Fórum – Programujte.com

 

Mutagen
~ Anonymní uživatel
549 příspěvků
20. 9. 2011   #1
-
0
-

Zdravim. Zkousel jsem napsat v C++ prevodnik z Dekadicky soustavy na Binarni soustavu ale nejak mi to nechce dohromady vypsat udaje. Nevíte v cem mam chybu?

[code]#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

//<< >>
int Prevod(int cislo);
int StringToInt(string Cislo);
int main(int argc, char *argv[])
{
    string number;
    cout << "Zadej Dec cislo na prevod do Bin : ";
    cin >> number;
    StringToInt(number);
    cout << endl << endl << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

int Prevod(int Decimal)
{
       string BinaryResult;
       int Bin;
       int i = 0;
       int End;
      
       while(Decimal > 0)
       {
                  Bin = Decimal % 2;
                  BinaryResult[i] = Bin;
                  Decimal = Decimal / 2;
                  i++;
       }
      
       End = i;
      
       for(int a = End; 0 > a; a--)
       {
            cout << BinaryResult[a] << "-";
       }       
}

int StringToInt(string Number)
{
  istringstream Stream(Number);
  int num;
  Stream >> num;
  Prevod(num);
}

[/code]

Nahlásit jako SPAM
IP: 89.190.90.–
Mutagen
~ Anonymní uživatel
549 příspěvků
20. 9. 2011   #2
-
0
-

Uz sem na to prisel u toho for(int a = End; 0 > a; a--) mam obraceny znaminko ale problem je v tom ze se mi to neprevede jako na cisla ale jako na naky smailiky :X

Nahlásit jako SPAM
IP: 89.190.90.–
Mutagen
~ Anonymní uživatel
549 příspěvků
20. 9. 2011   #3
-
0
-

 Takze nakonec vyreseno ... Jinak jeste takova otazka ... Pri vetsim zadani cisla program spadne. Nevite cim by to mohlo bejt ?

#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

//<< >>
int Prevod(int cislo);
int main(int argc, char *argv[])
{
    int number;
    cout << "Zadej Dec cislo na prevod do Bin : ";
    cin >> number;
    Prevod(number);
    system("PAUSE");
    return EXIT_SUCCESS;
}

int Prevod(int Decimal)
{
       int BinaryResult[0];
       int Dec = Decimal;
       int Bin;
       int i = 0;
       int End;
       
       while(Decimal > 0)
       {
                  i++;
                  Bin = Decimal % 2;
                  BinaryResult[i] = Bin;
                  Decimal = Decimal / 2;
       }
       
       End = i;
       while (End > 0)
       {
            cout << BinaryResult[End];
            End--;
            if (End == 0)
            {
                   cout << " Bin | Dec " << Dec << endl << endl << endl;            
            }
       }        
}
Nahlásit jako SPAM
IP: 89.190.90.–
m->29+6
Super člen
20. 9. 2011   #4
-
0
-

#3 Mutagen
Tipujem, že ti to spadne kvôli tomuto: int BinaryResult[0];

Nahlásit jako SPAM
IP: 83.240.51.–
Mutagen
~ Anonymní uživatel
549 příspěvků
21. 9. 2011   #5
-
0
-

#4 m->29
A jak to tedy opravit ? Ja jen ze v C++ sem zacal nedavno ( protoze se to ucime ve skole ) a doted sem delal v C# a proste nevim co s tim ... Vim jak to vyresit v C# ale ne v C++

Nahlásit jako SPAM
IP: 89.190.90.–
liborb
~ Redaktor
+18
Guru
21. 9. 2011   #6
-
0
-

BinaryResult[0] znamená, že máš pole o délce 0, ale ty těch 1 a 0 v bin tvaru máš jistě víc jak 0, takže udělej třeba pole o délce 1000 a budeš mít pokoj (nebo si spočítej kolik jich skutečně bude a alokuj pole dynamicky):

BinaryResult[1000]
Nahlásit jako SPAM
IP: 78.80.52.–
m->29+6
Super člen
21. 9. 2011   #7
-
+1
-
Zajímavé

#5 Mutagen
 Keďže používaš int tak by ti malo stačiť pole o dĺžke bitov int-u.

int BinaryResult[sizeof(int)*CHAR_BIT];
Nahlásit jako SPAM
IP: 83.240.51.–
Mutagen
~ Anonymní uživatel
549 příspěvků
21. 9. 2011   #8
-
0
-

#7 m->29
Díky moc ;) opravdu zajimave toto ;)

Nahlásit jako SPAM
IP: 89.190.90.–
Mutagen
~ Anonymní uživatel
549 příspěvků
21. 9. 2011   #9
-
0
-

Pokud muzu mit takovou jeste jednu otazku ale netyka se tohoto.

Jde o to ze sem si nainstaloval Visual Studio 2010 a to mi nebere prikazy jako je cout, cin, endl, apod. nevite proc ? Dekuji

Nahlásit jako SPAM
IP: 89.190.90.–
liborb
~ Redaktor
+18
Guru
21. 9. 2011   #10
-
0
-

Pokud máš C++ (Win32) konzolovou aplikaci, potřebné hlavičky a spol: 

#include <iostream>

using namespace std;

tak by k tomu neměl být důvod. A co ti to píše?

Nahlásit jako SPAM
IP: 78.80.52.–
Mutagen
~ Anonymní uživatel
549 příspěvků
21. 9. 2011   #11
-
0
-

#10 liborb
Ok dik uz to funguje on mi pri vytvoreni novyho projektu nevytvoril ani jednu z techto instrukci :X sice iostream sem tam pridal ale toho

using namespace std;

sem tam nemel ... Dik moc

Nahlásit jako SPAM
IP: 89.190.90.–
Mutagen
~ Anonymní uživatel
549 příspěvků
21. 9. 2011   #12
-
0
-

Ale zase pri pridani toho

using namespace std;

mi to pise warning :

Warning	1	warning C4067: unexpected tokens following preprocessor directive - expected a newline	d:\users\mutagen\documents\visual studio 2010\projects\dec2bin\dec2bin\dec2bin.cpp	4	1	Dec2Bin
Nahlásit jako SPAM
IP: 89.190.90.–
liborb
~ Redaktor
+18
Guru
21. 9. 2011   #13
-
0
-

Někde ti tam chybí nový řádek nebo tam máš možná nějaký bílý znak navíc ... hoď jsem celý začátek toho kódu (prvních 10 řádků ...)

Nahlásit jako SPAM
IP: 78.80.52.–
Mutagen
~ Anonymní uživatel
549 příspěvků
21. 9. 2011   #14
-
0
-

uz to je dobry ja za #include <iostream> mel strednik (;)

Nahlásit jako SPAM
IP: 89.190.90.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 126 hostů

Podobná vlákna

DEC-BIN — založil Adam

Převod hex do dec — založil cdx

Převod z hex na dec — založil Mats

Z Hexa do DEC převod — založil kejta

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý