Frage zu Eingabe von Werten in ein Int Array.
-
sry aber das ist keine Antwort auf das Problem, irgendwoher muss das doch kommen wenn ich einfach nur die Wertangabe im Arry ändere, das kanns ja wohl nicht sein !!!
Gruß
ShadowEater
-
Hi,
ich habs fast, das Ergebnis ist jetzt 171, wo kommt denn die verdammte überflüssige 1 jetzt her :
#include <iostream> #include <math.h> using namespace std; int BinToDez(int dual[], int n) { int dez = 0; if (n < 16) { for (int i = 0; i <= 7; i++) { dez = dez+(pow((2*dual[i]),n)); n--; } } return dez; } int main() { int dual [8] ={1,0,1,0,1,0,1,0}; // dual[1] = 1; // dual[2] = 0; // dual[3] = 1; // dual[4] = 0; // dual[5] = 1; // dual[6] = 0; // dual[7] = 1; // dual[8] = 0; int n = 7; int dez = 0; dez = BinToDez(dual,n); cout << dez << endl; return 1; }Gruß und vielen Dank
ShadowEater
-
Du mußt für n den Wert 7 übergeben, nicht 8. Die Bits sind durchnumeriert von 0 bis 7, und genau damit mußt Du auch potenzieren.
-
Hi,
aber ich übergeb doch n = 7

Vielen Dank
Gruß Rudi Ratlos
-
dez = dez + (pow(2,n) * dual[i]);
-
Hi,
ich hab den Fehler durch Zufall gefunden :
for (int i = 0; i < 7; i++)hier war ein <= drin, die Schleife zählt jetzt von 0 - 6, also bis 7 aber meine Dualzahl besteht doch naus 8 ziffern also brauch ich doch auch 8 Potenzen ???
Gruß
ShadowEater
-
Danke jetzt gibt das ganze Sinn !!!!!!
Gruß
ShadowEater
-
gelöscht. Belli war schneller.
-
???
-
ShadowEater schrieb:
???
volkard will damit nur sagen, dass er seine Antwort nachträglich entfernt hat, weil Belli ihm zuvorkam.
-
Also für diese Aufgabe pow() zu benutzen, ist wie mit dem Pfeil durch die Brust ins Auge (oder so ähnlich)... oder mit Kanonen auf Spatzen oder...
jedenfalls ziemlich umständlich!Denn wofür gibt es Bit-Shifting?