Ответ 1
В большинстве случаев вы хотите проанализировать более одного шестнадцатеричного байта одновременно. В этих случаях используйте шестигранный ящик.
разобрать это в целое число
Вы хотите использовать 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);
}