2012-05-16 13 views
8

Pracuję nad wdrożeniem algorytmu klucza . Ale nie mogłem użyć wartości 2048 bitów. Jak mogę go użyć?Jak mogę używać biginta z C#?

Chcę użyć dużej liczby całkowitej.

+1

Zwykle algorytmy klucza RSA pracują na 8 bitach naraz. Twój klucz zostanie umieszczony w tablicy bajtów z 8 indeksami. – Trisped

+1

nie duplikuj. nie chcę używać długich lub int64. nie wystarczają one dla mnie –

Odpowiedz

22

Można użyć System.Numerics.BigInteger (dodać odniesienie do zestawu System.Numerics). Jak wspomniano w komentarzach, może to nie być właściwe podejście.

+0

Rzeczywiście, BigInteger jest drogą do zrobienia. Niewielka uwaga: jest dostępna tylko w .NET 4.0 i nowszych. –

8

Natywna obsługa dużych liczb całkowitych została wprowadzona w .NET 4.0. Wystarczy dodać odwołanie do zestawu do System.Numerics, dodać deklarację using System.Numerics; u góry pliku kodu i dobrze jest przejść. Typ, którego szukasz, to BigInteger.

1

Lepsze wykorzystanie System.Numerics.BigInteger.

6

Tutaj używa się BigInteger. Ta metoda drukuje numery w sekwencji Fibonacciego do n.

public static void FibonacciSequence(int n) 
{ 
    /** BigInteger easily holds the first 1000 numbers in the Fibonacci Sequence. **/ 
    List<BigInteger> fibonacci = new List<BigInteger>(); 
    fibonacci.Add(0); 
    fibonacci.Add(1); 
    BigInteger i = 2; 
    while(i < n) 
    {     
     int first = (int)i - 2; 
     int second = (int) i - 1; 

     BigInteger firstNumber = fibonacci[first]; 
     BigInteger secondNumber = fibonacci[second]; 
     BigInteger sum = firstNumber + secondNumber; 
     fibonacci.Add(sum); 
     i++; 
    }   

    foreach (BigInteger f in fibonacci) { Console.WriteLine(f); } 
}