我正在写一个Rust程序,读取I2C总线并保存数据.当我读取I2C总线时,我会得到十六进制值,比如0x11
、0x22
等等.
现在,我只能将其作为字符串处理并保存为原样.有没有办法把它解析成一个整数?它有内置的功能吗?
我正在写一个Rust程序,读取I2C总线并保存数据.当我读取I2C总线时,我会得到十六进制值,比如0x11
、0x22
等等.
现在,我只能将其作为字符串处理并保存为原样.有没有办法把它解析成一个整数?它有内置的功能吗?
在大多数情况下,您希望一次解析多个十六进制字节.在这些情况下,使用the hex crate.
将其解析为整数
你想用from_str_radix
.它是在整数类型上实现的.
use std::i64;
fn main() {
let z = i64::from_str_radix("1f", 16);
println!("{:?}", z);
}
如果字符串实际上有0x
前缀,则需要跳过它们.最好的方法是通过trim_start_matches
:
use std::i64;
fn main() {
let raw = "0x1f";
let without_prefix = raw.trim_start_matches("0x");
let z = i64::from_str_radix(without_prefix, 16);
println!("{:?}", z);
}