Я использовал базовый преобразователь из здесь и изменил его, чтобы он работал со значениями ulong, но при преобразовании больших чисел, в частности чисел выше 16677181699666568, он возвращал неверные значения.Я начал изучать это и обнаружил, что Math.Pow (3, 34) возвращает значение 16677181699666568, тогда как на самом деле 3 ^ 34 равно 16677181699666569. Таким образом, это приводит к созданию гаечного ключа для меня.Я полагаю, это просто проблема с двойной точностью в методе Pow?Является ли мое самое простое решение просто создать свой собственный Pow, который принимает значения ulong?
Если так, какой самый быстрый способ сделать Pow?Я предполагаю, что есть что-то более быстрое, чем цикл for с умножением каждый раз.