C# 如何将一个非常大的数字提升到一个非常大的幂?

C# 如何将一个非常大的数字提升到一个非常大的幂?,c#,pow,ulong,C#,Pow,Ulong,我有一个ulong值需要提高到高倍,但Math.Pow无法成功生成正确的输出 我的c#代码: 屏幕的输出为0。如何执行此计算并获得正确的结果?查找是否要处理非常大的数字。是的,可以使用专门的BigInteger类计算该数字。用宽度为16位的ushort尝试这样做是没有希望的 using System; using System.Collections; using System.Numerics; public class Test { public static void Main

我有一个
ulong
值需要提高到高倍,但
Math.Pow
无法成功生成正确的输出

我的c#代码:


屏幕的输出为0。如何执行此计算并获得正确的结果?

查找是否要处理非常大的数字。

是的,可以使用专门的
BigInteger
类计算该数字。用宽度为16位的
ushort
尝试这样做是没有希望的

using System;
using System.Collections;
using System.Numerics;

public class Test 
{
    public static void Main(string[] args)
    {
        BigInteger a = 9123456789;
        BigInteger b = BigInteger.Pow(a, 9999);

        //Output this number if you're feeling lucky.
        Console.WriteLine(b);
    }
}
输出

43056151396124937171542222696555900626431494491043369510338912076154406943108
..
8614367506747618876018379290109

顺便说一下,您需要330837位来存储结果

你真的认为9123456789^9999适合于ulong吗?
Math.Pow
只适用于双倍。阅读,当它返回0时,它会告诉你,例如当数字大于数据类型中可以容纳的数字时。有些方法喜欢为这样的错误抛出异常,而这个方法只返回
0
。我对需要将值提高到9999次方的问题很好奇。愿意分享吗?我的世界观需要扩展。@Great.And.power.Oz哈哈。很抱歉,现在修好了。谢谢您需要在项目中明确地包含
System.Numerics.dll
。进入visual studio,右键单击项目中的“引用”,转到“程序集”,然后搜索
System.Numerics
,并在名称旁边添加一个勾号。应该包括dll,代码应该编译。
43056151396124937171542222696555900626431494491043369510338912076154406943108
..
8614367506747618876018379290109