How to convert int to binary with leading zeros in Rust

1 Answer

0 votes
/// Converts an unsigned integer into a binary string with leading zeros
/// padded to the specified bit width.
fn int_to_binary(num: u32, bits: usize) -> String {
    // The format! macro specifier breakdown:
    // - '0' specifies zero-padding instead of spaces
    // - 'width$' dynamically injects the width parameter
    // - 'b' formats the integer as binary (base 2)
    format!("{:0width$b}", num, width = bits)
}

fn main() {
    // Define the data provided
    let num: u32 = 153;

    // 1. Convert to an 8-bit binary representation (153 fits within 8 bits: 0 to 255)
    let bin_str_8 = int_to_binary(num, 8);

    // 2. Convert to a 16-bit binary representation to demonstrate wider padding
    let bin_str_16 = int_to_binary(num, 16);

    // Display the results
    println!("Original Integer: {}", num);
    println!("Binary (8-bit)  : {}", bin_str_8);
    println!("Binary (16-bit) : {}", bin_str_16);
}


/*
run:

Original Integer: 153
Binary (8-bit)  : 10011001
Binary (16-bit) : 0000000010011001

*/

 



answered 1 day ago by avibootz
...