Для этого вы можете использовать ящик hex .Функция decode выглядит так, как будто она делает то, что вам нужно:
extern crate hex;
fn main() {
let input = "090A0B0C";
let decoded = hex::decode(input).expect("Decoding failed");
println!("{:?}", decoded);
}
Выше будет напечатано [9, 10, 11, 12]
.Обратите внимание, что decode
возвращает выделенную кучу Vec<u8>
, если вы хотите декодировать в массив, вы хотите использовать функцию decode_to_slice
, которая еще не выпущена в crates.io илиFromHex
черта:
extern crate hex;
use hex::FromHex;
fn main() {
let input = "090A0B0C";
let decoded = <[u8; 4]>::from_hex(input).expect("Decoding failed");
println!("{:?}", decoded);
}