C#怎么使用BigInteger C#处理大整数运算方法

来源:这里教程网 时间:2026-02-21 17:36:19 作者:

直接用

System.Numerics.BigInteger
类,无需安装额外包(.NET Framework 4.0+ / .NET Core 2.0+ 均内置)。

引入命名空间并声明变量

先在文件顶部加引用:

using System.Numerics;

然后就可以像普通数字一样声明和初始化:

直接赋值字符串:
BigInteger big = BigInteger.Parse("123456789012345678901234567890");
从整数转换:
BigInteger big = (BigInteger)long.MaxValue + 1;
用构造函数(支持 byte[] 或 uint[]):
BigInteger big = new BigInteger(new byte[] { 0x01, 0x00 }); // 小端序,值为 1

支持常规算术和比较操作

加减乘除、取模、幂运算、位运算、比较符(==, !=, 等)全部可用,语法和

int
long
完全一致:

BigInteger a = BigInteger.Pow(2, 100); // 2 的 100 次方
BigInteger b = a * 3 + 7;
bool isEven = (b & 1) == 0;
BigInteger gcd = BigInteger.GreatestCommonDivisor(a, b); // 内置 GCD 方法

注意输入输出和性能细节

BigInteger
是不可变类型,每次运算都返回新实例;它不支持隐式转换,需显式转换或用
Parse
/
TryParse

转字符串推荐用
.ToString()
,默认十进制;支持带格式器,如
big.ToString("X")
输出十六进制
读入大数优先用
BigInteger.TryParse(...)
防异常,尤其来自用户输入或文件时
频繁运算(如密码学循环)可考虑缓存中间结果,避免重复创建对象 没有字面量语法(不能写
123456789012345678901234567890BigInteger
),必须靠
Parse
或构造函数

基本上就这些。用起来很自然,关键就是记得引用

Numerics
命名空间,其他和普通数值类型几乎一样。

相关推荐

热文推荐