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

Rust 十进制数到十六进制字符串,rust,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 {

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
}

我是在正确的轨道上,还是我想得太多了?

你想得太多了

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

分别来自和。另请参见。

顺便提一下,
string.push_str(string::from_char(1,char)。as_slice())
效率极低;要执行类似操作,
string.push\u char(char)
是您应该执行的操作。@ChrisMorgan谢谢您的指针,我对C++的生锈非常陌生,知道我使用的一些概念是坏的。@ 10CLS:<代码> ASSLead 只是为了获得<代码>和STR>代码> > <代码>字符串 >,以便您可以将它与字符串切片进行比较。代码>断言现在已更改,因此您甚至不需要使用
&
&*
格式!(…)。