解析 – 将十六进制字符串转换为十进制

我正在写一个Rust程序,读取I2C总线并保存数据.当我读I2C总线时,我得到十六进制值,如0x11,0x22等.

现在我只能把它当作一个字符串来保存它.有没有办法可以将其解析为整数?有没有内置的功能呢?

最佳答案
你想使用from_str_radix.它是在整数类型上实现的.

use std::i64;

fn main() {
    let z = i64::from_str_radix("1f", 16);
    println!("{:?}", z);
}

如果你的字符串实际上有0x前缀,那么你将需要跳过它们.最快的方式是:

use std::i64;

fn main() {
    let raw = "0x1f";
    let z = i64::from_str_radix(&raw[2..], 16);
    println!("{:?}", z);
}

转载注明原文:解析 – 将十六进制字符串转换为十进制 - 代码日志