Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm Rust:从二进制字符串表示转换为ASCII字符串_Algorithm_Rust_Binary - Fatal编程技术网

Algorithm Rust:从二进制字符串表示转换为ASCII字符串

Algorithm Rust:从二进制字符串表示转换为ASCII字符串,algorithm,rust,binary,Algorithm,Rust,Binary,我正在尝试将包含某些ASCII文本的二进制表示形式的字符串转换回ASCII文本 我有以下&str: let binary:&str=“01010010 011110101 011110011 011010100 01100001 01100011 011001001001010101 01100001 011101110 011110011” 我想把这个&str转换成ASCII版本,也就是“Rustaceans”这个词 目前,我正在将这个单词转换为二进制,如下所示: fn到_二进制(s:&str

我正在尝试将包含某些ASCII文本的二进制表示形式的
字符串
转换回ASCII文本

我有以下
&str

let binary:&str=“01010010 011110101 011110011 011010100 01100001 01100011 011001001001010101 01100001 011101110 011110011”

我想把这个
&str
转换成ASCII版本,也就是“Rustaceans”这个词

目前,我正在将这个单词转换为二进制,如下所示:

fn到_二进制(s:&str)->字符串{
让mut binary=String::default();
让ascii:String=s.into();
将ascii.clone()中的字符转换为_字节(){
二进制+=&格式!(“0{:b}”,字符);
}
//删除结尾处的尾随空格
binary.pop();
二元的
}


我正在寻找一个函数,它将
的输出转换成二进制文件,并返回
“Rustaceans”


提前谢谢

有一个简单的组合,和(当前)不稳定的,您可以使用它:

#![功能(关联字符功能)]
fn bin_str_to_word(bin_str:&str)->字符串{
本_街拆分(“”)
.map(|n | u32::from_str_基数(n,2).unwrap())
.map(| c | char::from_u32(c).unwrap())
.collect()
}
fn main(){
let binary:&str=“01010010 011110101 011110011 01110100 01100001 01100011 011001001001001 01100001 011011010 011110011”;
let word:String=bin_str_to_word(二进制);
println!(“{}”,word);
}

由于所有文本都是ASCII文本,您可以使用,演示如下:

使用std:{num::parseinteror};
发布fn解码\u二进制文件(s:&str)->结果{
(0..s.len())
.步骤(9)
.map(|i | u8::from_str_基数(&s[i..i+8],2))
.collect()
}
fn main()->结果{
let binary:&str=“01010010 011110101 011110011 01110100 01100001 01100011 011001001001001 01100001 011011010 011110011”;
println!(“{:?}”,字符串::from_utf8(解码_二进制(二进制)?);
好(())
}

String::from
更具可读性,如果您想要
&str
类型,请使用以下作为转换器:

std::str::from_utf8(&decode_binary(二进制)?)

这闻起来像是一个可疑的类赋值。“正在寻找一个函数,该函数将获取to_二进制文件的输出并返回“Rustaceans”。“stdlib中没有这样的函数,您必须去编写它(我希望这是整个练习的重点)。