10進数を16進数文字列に変換する 質問する

10進数を16進数文字列に変換する 質問する

Rust には、10 進整数を 16 進文字列に簡単に変換できる関数セットがありますか? 文字列を整数に変換するのは問題ありませんが、その逆はわかりません。現在、私が持っているものは機能しません (少しひどいかもしれません)

編集者注- このコードは 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

あなたは全体的に考えすぎです。

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

それはstd::fmt::LowerHexそしてstd::fmt::UpperHexそれぞれ参照。「hex」のドキュメントを検索

おすすめ記事