如何将很大的十进制字符串转换为十六进制?

再见泽维尔
let hex = "100000000000000000".as_bytes().to_hex();
// hex == "313030303030303030303030303030303030"

println!("{:x}", 100000000000000000000000u64);
// literal out of range for u64

我如何获得该价值?

在Python中,我只打电话给hex(100000000000000000000000)'0x152d02c7e14af6800000'

to_hex()来自六角箱子

伊莉亚·基西尔(Illya Kysil)

需要注意Rust中不同数字类型的可表示值的范围。在这种特殊情况下,值超出了的限制u64,但u128类型容纳了该值。以下代码输出的值与Python中的示例相同:

fn main() {
    let my_string = "100000000000000000000000".to_string();  // `parse()` works with `&str` and `String`!
    let my_int = my_string.parse::<u128>().unwrap();
    let my_hex = format!("{:X}", my_int);
    println!("{}", my_hex);
}

经过Rust Playground的检查

152D02C7E14AF6800000

在一般情况下,需要明确使用任意精度算术。从一些建议什么是对锈病高精度计算最好的箱子?在Reddit上:

  • num_bigint 工作稳定,没有不安全的代码。
  • ramp 使用不安全并且无法在稳定的Rust上运行,但是速度更快。
  • rust-gmprug绑定到最新的C语言bigint实现(GMP)。它们是最快的,具有最多的功能。您可能要使用其中之一。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将十六进制字符串转换为十进制值

如何将十进制转换为十六进制字符串的十六进制和XOR

在javascript中,如何将十进制(带小数点)转换为十六进制字符串

将字符串转换为十六进制,十进制和八进制

如何将很大的十进制数转换为字符串?

Python将十六进制字符串转换为十进制值

将十进制NSString转换为十六进制字符串

Spark:将十六进制字符串转换为十进制

将十六进制字符串转换为十进制整数

使用C将十六进制字符串常量转换为十进制值

将大的十六进制字符串转换为十进制

将十六进制字符串转换为十进制整数

将C中的十六进制字符串转换为十进制

将十六进制字符串转换为无符号十进制值

如何在 C++ 中将十六进制转换为十进制字符串?

我将如何使用 js 将十进制数转换为十六进制字符串?

如何将十六进制字符串转换为十六进制数字

如何将十六进制编码的字符串转换为十六进制整数

Arduino:将十六进制字符串转换为uint64或十进制字符串

从 jq 得到的十六进制字符串无法转换为十进制值

Python Pandas子集十六进制字符串,转换为十进制

在arduino中将十六进制字符串转换为十进制

Java通用将字节数组转换为字符串(非十六进制,十进制)

将长十六进制字符串拆分为列值并转换为十进制

C#将十六进制字符串转换为十进制。为什么是负值?

如何在Java中将字符串中的大十进制数转换为十六进制?

如何将负十六进制转换为十进制

使用AWK,如何将十进制数转换为十六进制数

如何将十进制或十六进制值转换为整数?