bytes to string fix
This commit is contained in:
@@ -28,20 +28,26 @@ pub fn string_to_binary(bits: &str) -> Vec<u8> {
|
|||||||
bytes
|
bytes
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn binary_to_string(bytes: Vec<u8>, len: u32) -> String {
|
pub fn binary_to_string(bytes: Vec<u8>, len: u8) -> String {
|
||||||
let mut binary = String::new();
|
let mut binary = String::new();
|
||||||
let mut n = 0;
|
//bytes.reverse();
|
||||||
for b in bytes {
|
let mut word = Vec::new();
|
||||||
let mut current = b;
|
for b in &bytes {
|
||||||
while n < len && current > 0 {
|
let mut current = *b;
|
||||||
|
while current != 0b0000_0000 {
|
||||||
if current % 2 == 1 {
|
if current % 2 == 1 {
|
||||||
binary.push('1');
|
word.push('1');
|
||||||
} else {
|
} else {
|
||||||
binary.push('0');
|
word.push('0');
|
||||||
}
|
}
|
||||||
current >>= 1;
|
current >>= 1;
|
||||||
n += 1;
|
|
||||||
}
|
}
|
||||||
|
word.reverse();
|
||||||
|
binary = binary + &word.iter().collect::<String>();
|
||||||
|
word = Vec::new();
|
||||||
|
}
|
||||||
|
for _ in 0..8 - len {
|
||||||
|
binary.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
binary
|
binary
|
||||||
|
|||||||
19
src/main.rs
19
src/main.rs
@@ -27,21 +27,22 @@ fn main() -> std::io::Result<()> {
|
|||||||
eprintln!("root.n = {:#?}", root.n);
|
eprintln!("root.n = {:#?}", root.n);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
let v = string_to_binary("1010001010101010");
|
let binary = "101100001";
|
||||||
let i: u32 = 16;
|
let mut v = string_to_binary(binary);
|
||||||
|
let length = (binary.len() % 8) as u8;
|
||||||
//eprintln!("v = {:?}", v);
|
//eprintln!("v = {:?}", v);
|
||||||
let len = i.to_be_bytes();
|
let len_bytes = length.to_be_bytes();
|
||||||
|
|
||||||
eprintln!("v = {:?}", v);
|
eprintln!("v = {:?}", v);
|
||||||
eprintln!("len = {:?}", len);
|
eprintln!("len = {:?}", len_bytes);
|
||||||
file2.write_all(&len)?;
|
println!("101100001");
|
||||||
file2.write_all(&v)?;
|
file2.write_all(&len_bytes)?;
|
||||||
*/
|
file2.write_all(&v)?;*/
|
||||||
|
|
||||||
let mut buffer = [0u8; 4];
|
let mut buffer = [0u8; 1];
|
||||||
file2.read_exact(&mut buffer)?;
|
file2.read_exact(&mut buffer)?;
|
||||||
eprintln!("buffer = {:?}", buffer);
|
eprintln!("buffer = {:?}", buffer);
|
||||||
let len = u32::from_be_bytes(buffer);
|
let len = u8::from_be_bytes(buffer);
|
||||||
eprintln!("len = {:?}", len);
|
eprintln!("len = {:?}", len);
|
||||||
|
|
||||||
let mut read = Vec::new();
|
let mut read = Vec::new();
|
||||||
|
|||||||
Reference in New Issue
Block a user