Beliebig große ganze Zahlen in C #

7

Wie kann ich diesen Python-Code in c # implementieren?

Python-Code:

%Vor%

Ergebnis:

%Vor%

Aber in c # habe ich Probleme mit großen Ziffern.

Können Sie mir helfen?

Ich habe unterschiedliche Ergebnisse in Python und c #. Wo kann ein Fehler sein?

    
pic0 24.04.2012, 07:32
quelle

2 Antworten

18

Primitive Typen (wie Int32 , Int64 ) haben eine endliche Länge, die für eine so große Zahl nicht ausreicht. Zum Beispiel:

%Vor%

In diesem Fall würden Sie 128 Bits benötigen, um diese Zahl darzustellen. Mit .NET Framework 4.0 gibt es einen neuen Datentyp für beliebig große Ganzzahlen System.Numerics. BigInteger . Sie müssen keine Größe angeben, da durch die Zahl abgeleitet wird (das bedeutet, dass Sie möglicherweise sogar eine OutOfMemoryException erhalten, wenn Sie beispielsweise eine Multiplikation von zwei sehr großen Werten ausführen Zahlen).

Um zu Ihrer Frage zurückzukehren, analysieren Sie zuerst Ihre hexadezimale Zahl:

%Vor%

Dann einfach auf die Konsole drucken:

%Vor%

Sie könnten daran interessiert sein zu berechnen, wie viele Bits Sie benötigen, um eine beliebige Zahl darzustellen, benutzen Sie diese Funktion (wenn ich mich recht erinnere, stammt die ursprüngliche Implementierung aus C Numerical Recipes):

%Vor%

Dann um die erforderliche Größe einer Zahl zu berechnen, geschrieben als String:

%Vor%     
Adriano Repetti 24.04.2012 07:41
quelle
2

Wenn Sie nur größere Zahlen verwenden möchten, gibt es BigInteger mit vielen Ziffern.

    
annonymously 24.04.2012 07:37
quelle

Tags und Links