十进制数到十六进制字符串

时间:2014-07-29 02:26:11

标签: rust

Rust是否有一组函数可以轻松地将十进制整数转换为十六进制字符串?我将字符串转换为整数没有问题,但我似乎无法弄清楚相反的情况。目前我所拥有的不起作用(可能有点令人厌恶)

编辑注释 - 此代码早于Rust 1.0,不再编译。

pub fn dec_to_hex_str(num: uint) -> String {
    let mut result_string = String::from_str("");
    let mut i = num;
    while i / 16 > 0 {
        result_string.push_str(String::from_char(1, from_digit(i / 16, 16).unwrap()).as_slice());
        i = i / 16;
    }
    result_string.push_str(String::from_char(1, from_digit(255 - i * 16, 16).unwrap()).as_slice());

    result_string
}

我是在正确的轨道上,还是我在思考整件事?

1 个答案:

答案 0 :(得分:31)

你是在思考整件事。

assert_eq!(format!("{:x}", 42), "2a");
assert_eq!(format!("{:X}", 42), "2A");

分别来自std::fmt::LowerHexstd::fmt::UpperHex。另请参阅a search of the documentation for "hex"