Entwickler-Ecke
Basistechnologien - Potenzieren mit Parameterübergabe und Rückgabewert
acer5672 - Di 22.04.08 18:00
Titel: Potenzieren mit Parameterübergabe und Rückgabewert
Hi
ich hab eine Mehtode geschrieben die alle Rechenoperationen außer der Potenzberechnung ausführt könnte bitte jemand
ein Blick drauf werfen !!!
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| static void Main(string[] args) { int exponent; int ergebnis; Console.Write("Willkommen zum 2er Potenz rechner geben Sie eine Zahl ein :"); exponent=Convert.ToInt32(Console.ReadLine()); MyPow2(exponent); ergebnis=MyPow2(exponent); Console.Write("Ihr Ergebnis:{0}",ergebnis); Console.ReadLine();
}
static int MyPow2(int zahl) { return 2 - zahl; |
JüTho - Di 22.04.08 18:10
Häh? Ich sehe nur eine einzige Subtraktion, aber keine Potenz.
Anstelle von Convert ist Int32.TryParse vorzuziehen.
Und was sollen wir prüfen? Ob Deine Rechnung richtig ist, kannst Du doch selbst kontrollieren.
Jürgen
Kha - Di 22.04.08 18:44
Sieht für mich so aus, als ob er nach einem Potenz-Operator gesucht und die Lücke dann erstmal mit einem Minus aufgefüllt hat :nixweiss: :mrgreen: .
Also: C# kennt keinen Operator dafür, nimm stattdessen
Math.Pow (wie dir Google innerhalb von 10s verraten sollte).
Im Fall der Basis 2 und eines nicht-negativen, ganzzahligen Exponenten könnte man auch
benutzen. Davor solltest du allerdings überprüfen, ob "zahl" nicht zu groß ist.
JüTho - Di 22.04.08 19:19
Khabarakh hat folgendes geschrieben: |
Sieht für mich so aus, als ob er nach einem Potenz-Operator gesucht und die Lücke dann erstmal mit einem Minus aufgefüllt hat |
Soviel Phantasie hatte ich allerdings nicht. :roll:
Mir ist es tatsächlich gelungen, ^ als Potenz-Operator zu verwenden; aber nur mit Klammern wurde es richtig verstanden:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| nextBlock = blockContent[blocksize - 4] + 256 * blockContent[blocksize - 3] + (256^2) * blockContent[blocksize - 2] + (256^3) * blockContent[blocksize - 1]; |
Vielleicht war es auch bei 256er-Potenzen zufällig richtig (weil das Ergebnis bei bitweiser Operation übereinstimmt).
Jürgen
Kha - Di 22.04.08 19:33
Hm, 256 xor 2 sollte nach Adam Ries (natürlich kannte der das schon ^^) eigentlich 0x100 ^ 0x1 = 0x101 = 258 sein, 256 ^ 3 dann 259. Deswegen wird auch in vielen Sprachen "**" als Potenz-Op genommen, um keine Verwirrung zu stiften. In deinem Fall würde ich eher den BitConverter nutzen ;) . Und ja, die logischen/bitweisen Ops stehen zum Glück im Gegensatz zu Pascal ziemlich weit unten in der Operator-Vorrang-Tabelle.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!