verilog書く人

自称ASIC設計者です。どなたかkaggle一緒に出ましょう。

Rustで文字列を数字に、あるいは数字を文字列にする方法

毎回ググってるのでまとめ。 10進数だけでなく、2進数など、基数変更に対応。

文字と数字の相互変換

charと数値型を行き来したい場合は、to_digit()あるいはfrom_digit()を使う。こっちは覚えやすい。

>> '5'.to_digit(10).unwrap() // 10進数
5
>> std::char::from_digit(10, 36)  // 2番目の引数は基数、この場合は36進数
'a'

文字列の場合

文字列と数値を行き来したい場合は以下のようにする。

>> format!("{:b}", 10) // 2進数
"1010"
>> format!("{}", 10) // 10進数
"10"
>> 10.to_string()  // to_stringは覚えやすいが、10進数固定のようだ。
"10"
>> format!("{:x}", 10) // 16進数
"a"
>> i64::from_str_radix("1010", 2).unwrap()  // 2番目の引数は基数、この場合は2進数
10

to_str_radixだと覚えやすいのだが。