Autor Beitrag
acer5672
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Di 22.04.08 18:00 
Hi
ich hab eine Mehtode geschrieben die alle Rechenoperationen außer der Potenzberechnung ausführt könnte bitte jemand
ein Blick drauf werfen !!!

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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
ausblenden C#-Quelltext
1:
1 << zahl					

benutzen. Davor solltest du allerdings überprüfen, ob "zahl" nicht zu groß ist.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 22.04.08 19:19 
user profile iconKhabarakh 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:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
//  4 aufeinanderfolgende Bytes als Zahlenwert berechnen
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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.