rust - 如何处理 Rust 中不适合 128 位的真实大数而不会丢失?

标签 rust

当我尝试做 10 次方 100 时,我得到

thread 'main' panicked at 'attempt to multiply with overflow', shorter.rs:33
note: Run with `RUST_BACKTRACE=1` for a backtrace.

这是正常的,因为 10^100 大于 2^64(甚至 2^128)。

最佳答案

如果您确实只使用整数,则可以使用 big_int 中的 BigIntBigUint箱。一个示例用法可能是:

extern crate num_bigint;
use num_bigint::{BigInt, Sign};

fn main() {
    let x = BigInt::new(Sign::Plus, vec![1, 0]);
    println!(num::pow(x, 100).to_str_radix(10));
}

关于rust - 如何处理 Rust 中不适合 128 位的真实大数而不会丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44325802/

相关文章:

loops - 从向量中删除相邻的值

rust - 如何在 Rust Cargo.toml 中执行基准测试

error-handling - 怎么样了?运算符与 From 特征交互?

rust - 在一些连续的容器上迭代大小为 N 的切片

rust - 一个从切片中获取 X 元素的衬垫

rust - 如何正确访问 RefCell 中的值

rust - 如何在 Rust 的同一个 lib.rs 文件中的测试中引用常量?

rust - 结构中的自定义 getter 和 setter

rust - 在特征对象上使用回调

rust - 在 Rust 中指定 FFI 库的链接路径有哪些不同的方法?