2012-05-16 19 views
8

Io lavoro per implementare un algoritmo chiave RSA. Ma non potrei usare un valore di 2048 bit. Come posso usarlo?Come posso usare bigint con C#?

Voglio utilizzare il numero intero grande.

+1

Di solito gli algoritmi delle chiavi RSA funzionano su 8 bit alla volta. La tua chiave verrebbe inserita in un array di byte con 8 indici. – Trisped

+1

non duplicato. Io non voglio usare long o int64. non mi bastano –

risposta

22

È possibile utilizzare System.Numerics.BigInteger (aggiungere un riferimento all'assembly System.Numerics). Come menzionato nei commenti, questo potrebbe non essere l'approccio giusto.

+0

Infatti, BigInteger è la strada da percorrere. Nota secondaria: è disponibile solo in .NET 4.0 e versioni successive. –

8

In .NET 4.0 è stato introdotto il supporto nativo per i grandi numeri interi. Basta aggiungere un riferimento all'assembly a System.Numerics, aggiungere una dichiarazione using System.Numerics; nella parte superiore del file di codice e sei a posto. Il tipo che stai cercando è BigInteger.

1

Migliore utilizzo System.Numerics.BigInteger.

6

Ecco come utilizzare BigInteger. Questo metodo stampa i numeri nella sequenza di Fibonacci fino a 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); } 
}