BigInteger
- .NET 4.0부터 도입, 내장 형식이 아님
- 임의의 정수 형식에서 암묵적 변환이 허용
- 모든 산술 연산자, 비교 연산자, 상등 연산자를 중복적재
- 바이트 배열과의 상호호환성
- Math의 기능 중 일부분이 포함
반응형
using System;
using System.Numerics;
using System.Security.Cryptography;
namespace Practice
{
class Program
{
static void Main(string[] args)
{
// 거듭 제곱을 이용한 큰 수 생성
BigInteger googol = BigInteger.Pow(10, 100);
// 파싱을 이용한 큰 수 생성
BigInteger googol2 = BigInteger.Parse("1".PadRight(101, '0'));
Console.WriteLine(googol);
Console.WriteLine(googol2);
Console.WriteLine();
// 명시적 캐스팅
double g2 = (double)googol;
BigInteger g3 = (BigInteger)g2; // 정밀도 손상
Console.WriteLine(g3);
Console.WriteLine();
// 암/복호화에 사용할 수 있는 32비트 난수를 생성하여 BigInteger 변수에 배정
RandomNumberGenerator rand = RandomNumberGenerator.Create();
byte[] bytes = new byte[32];
rand.GetBytes(bytes);
var bigRandomNumber = new BigInteger(bytes);
Console.WriteLine(bigRandomNumber);
Console.WriteLine();
// bytes로 되돌리기
byte[] bytes2 = bigRandomNumber.ToByteArray();
foreach (var item in bytes2)
{
Console.Write("{0:X}", item);
}
Console.WriteLine();
}
}
}
반응형
'C#' 카테고리의 다른 글
[C#] Tuple (1) | 2023.08.22 |
---|---|
[C#] 열거형과 System.Enum (1) | 2023.08.21 |
[C#] Random & RandomNumberGenerator (1) | 2023.08.20 |
[C#] Complex (1) | 2023.08.19 |
[C#] BitConverter (1) | 2023.08.17 |
[C#] XmlConvert (1) | 2023.08.16 |
[C#] Convert (2) | 2023.08.15 |
[C#] 서식화(Formatting)와 파싱(Parsing) (1) | 2023.08.14 |