如何从文件中读取HEX

问题描述 投票:0回答:2

序列应与IS

000102030405060708090a0b0c0d0e0f

结果应该是:

00102030405060708090a0b0c0d0e0f0

我得到不同结果的原因是Rust将内容读为ASCII,因此:

buffer: [48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55]
buffer: [56, 56, 57, 57, 97, 97, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102]

有一种方法可以将内容直接读取到十六进制阵列,或者如何将其转换?

	

您可以使用hex :: decode将十六进制转换为字节,然后使用'^'符号用位进行XOR操作以获取结果。

file rust hex ascii
2个回答
0
投票

let mut buffer = [0;16]; while let Ok(n) = file.read(&mut buffer) { if n == 0 { break; } let s = match str::from_utf8(&buffer) { Ok(str) => str, Err(e) => panic!("Invalid UTF-8 sequence: {}", e), }; let mut content = s.to_string(); let char_vec: Vec<char> = content.chars().collect(); println!("Chars{:?}", char_vec); }


0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.