C#에서 표현 가능한 최대 정수형은 8바이트(2^26) long 형으로

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위의 값을 갖는다. 일반적인 환경에서는

이 정도 범위로 충분하겠지만 암호화 같은 분야에서는 천문학적인 숫자를 다루므로 다른 방법을

찾아야 한다. BCL에서는 이 요구에 맞춰 닷넷 4.0부터 BigInteger 구조체 타입을 추가했고 사용법도

일반적인 in/long 형과 유사하다.

static void Main(string[] args)
{
    BigInteger int1 = BigInteger.Parse("12345678901234567890");
    BigInteger int2 = BigInteger.Parse("98765432109876543210");

    Console.WriteLine(int1 + int2);
}

위의 코드를 실행하려면 System.Numerics 어셈블리를 참조로 추가해야 한다. 특이하게 초기화를

위해 숫자를 문자열로 대체해서 BigInteger.Parse 메서드를 호출하고 있다. 왜냐하면 C# 코드에서

사용되는 숫자형 리터럴로는 여전히 64비트로 제한돼 있기 때문에 BigInteger 타입을 초기화하려면

문자열을 사용해야 한다. 만약 long 형 범위의 숫자라면 BigInteger에 그대로 대입하는 것도 가능하

다.

BigInteger int3 = 9223372036854775807;