How to convet decimal number base-12 number in Rust

1 Answer

0 votes
fn decimal_to_base12(mut decimal_number: u32) -> String {
    // Converts a decimal number to base-12 and returns it as a string.
    if decimal_number == 0 {
        return "0".to_string();
    }

    let digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B']; // Base-12 digits (A = 10, B = 11)
    let mut base12 = Vec::new();

    while decimal_number > 0 {
        let remainder = (decimal_number % 12) as usize;
        base12.push(digits[remainder]);
        decimal_number /= 12;
    }

    // Reverse to get the correct order
    base12.iter().rev().collect()
}

fn main() {
    let decimal_number = 100;
    let base12_number = decimal_to_base12(decimal_number);
    println!("Base-12 representation: {}", base12_number);

    let decimal_number = 19621;
    let base12_number = decimal_to_base12(decimal_number);
    println!("Base-12 representation: {}", base12_number);
}


/*
run:

Base-12 representation: 84
Base-12 representation: B431

*/

 



answered Sep 11, 2025 by avibootz

Related questions

...