Shypo
Lieutenant
- Registriert
- Nov. 2006
- Beiträge
- 785
Hallo,
Einige werden jetzt wahrscheinlich lachen und diesen Simplen Fehler direkt finden, ich komm aber überhaupt nicht dahinter.
Wir sollen für das Studium (ET) einen Konverter Schreiben Binär auf Dezimal und die andere Richtung.
Klappt auch alles soweit, jedoch soll das Ergebnis mit einer Getter Funktion wieder gegeben werden. Und das Ergebnis ist immer 0, bei mir.
Wenn ich das ergebnis im Converter mit "ergebnis = 10;" unter/hinter der for Schleife setze, kommt auch wieder 10 raus.
Sobald ich das aber alles über die Formeln (Horner Schema bei bin2dec) laufen lassen, kommt wieder ergebnis 0.
Das geht weder bei Binär auf Dezimal noch in die Andere Richtung. Obwohl die Formeln alle korrekt sind.
Ich hab keine Ahnung warum, das bei mir nicht läuft. Ich habe Zugriff auf eine Funktionierendes Programm, was von den Formeln genau so geschrieben ist, ich bin aber kein Freund des kopierens. Und ich würde liebend gerne wissen wo mein Fehler sitzt.
Daher wäre ich für Anregungen/Tipps dankbar.
P.S ich nutze Ubuntu in einer VM.
Vielen Dank
Gruß
Shypo
bin2dec.cpp
bin2dec.h
dec2bin.cpp
dec2bin.h
main.cpp
makefile
Einige werden jetzt wahrscheinlich lachen und diesen Simplen Fehler direkt finden, ich komm aber überhaupt nicht dahinter.
Wir sollen für das Studium (ET) einen Konverter Schreiben Binär auf Dezimal und die andere Richtung.
Klappt auch alles soweit, jedoch soll das Ergebnis mit einer Getter Funktion wieder gegeben werden. Und das Ergebnis ist immer 0, bei mir.
Wenn ich das ergebnis im Converter mit "ergebnis = 10;" unter/hinter der for Schleife setze, kommt auch wieder 10 raus.
Sobald ich das aber alles über die Formeln (Horner Schema bei bin2dec) laufen lassen, kommt wieder ergebnis 0.
Das geht weder bei Binär auf Dezimal noch in die Andere Richtung. Obwohl die Formeln alle korrekt sind.
Ich hab keine Ahnung warum, das bei mir nicht läuft. Ich habe Zugriff auf eine Funktionierendes Programm, was von den Formeln genau so geschrieben ist, ich bin aber kein Freund des kopierens. Und ich würde liebend gerne wissen wo mein Fehler sitzt.
Daher wäre ich für Anregungen/Tipps dankbar.
P.S ich nutze Ubuntu in einer VM.
Vielen Dank
Gruß
Shypo
bin2dec.cpp
Code:
#include"bin2dec.h"
bin2dec::bin2dec(string binary)
{
x = binary;
ergebnis = 0;
}
int bin2dec::getdecimal()
{
return ergebnis;
}
void bin2dec::convert()
{
ergebnis = 0;
for(int i=2; i<x.length(); i++)
ergebnis = ergebnis * 2 + (x.at(i) - '0');
//ergebnis = 10; funktioniert hier
}
bin2dec.h
Code:
#include<string>
using namespace std;
class bin2dec
{
private:
string x;
int ergebnis;
public:
bin2dec(string binary);
int getdecimal();
void convert();
};
dec2bin.cpp
Code:
#include<string>#include<sstream>
#include "dec2bin.h"
using namespace std;
dec2bin::dec2bin(string decimal)
{
x = decimal;
ergebnis = "";
}
string dec2bin::getbinary()
{
return ergebnis;
}
void dec2bin::convert()
{
int c = 0;
for(int i=2;i<x.length();i++)
c = c*10 + (x[i] - '0');
do
{
int i = c%2;
stringstream ss;
ss<<i;
string s = ss.str();
ergebnis = s + ergebnis;
c/=2;
}
while (c>0);
while(ergebnis.length()<8)
{
ergebnis = '0' + ergebnis;
}
}
dec2bin.h
Code:
#include<string>
using namespace std;
class dec2bin
{
private:
string x;
string ergebnis;
public:
dec2bin(string decimal);
string getbinary();
void convert();
};
main.cpp
Code:
#include<iostream>#include<string>
#include"dec2bin.h"
#include"bin2dec.h"
using namespace std;
int main()
{
string Eingabe;
cout << "Konverter für Binary -> Decimal oder Decimal -> Binary" << endl;
cout << "Tragen Sie die zu Konvertierende Zahl mit\n b "Zahlen" für Binary auf Decimal, oder\n d "Zahlen" für Decimal auf Binary ein" << endl;
cin >> Eingabe;
if (Eingabe[0] == 'b') //ASCI 98 = b
{
bin2dec bd(Eingabe);
cout << "Konvertiere von Binary -> Decimal" << endl;
bd.convert();
cout << "Decimal = " << bd.getdecimal() << endl;
}
if (Eingabe[0] == 'd') //ASCI 100 = d
{
dec2bin db(Eingabe);
cout << "Konvertiere von Decimal -> Binary" << endl;
db.convert();
cout << "Binary = " << db.getbinary() << endl;
}
return 0;
}
makefile
Code:
CC := g++
CPPFLAGS :=
LDFLAGS :=
LDLIBS := -lstdc++
SILENT := @
ECHO := echo
MODULES := dec2bin bin2dec main
SRC = $(MODULES:%=%.cpp)
OBJ = $(SRC:%.cpp=%.o)
all: main
main: $(OBJ)
$(SILENT) $(ECHO) "--- Creating $@ ---"
$(SILENT) $(CC) $^ -o $@ $(LDFLAGS)
%.o: %.cpp
$(SILENT) $(ECHO) "--- Compiling $@ ---"
$(SILENT) $(CC) $^ -c $(CFLAGS) $<
.PHONY: clean
clean:
$(SILENT) $(ECHO) "--- Removing object files $@ ---"
$(SILENT) rm -f *.o
Zuletzt bearbeitet: