Самый простой способ поместить строку с 0 влево, чтобы
-
"110" = "00000110"
-
"11110000" = "11110000"
Я попытался использовать format!
макрос, но он только прокладывает вправо с пространством:
format!("{:08}", string);
Самый простой способ поместить строку с 0 влево, чтобы
"110" = "00000110"
"11110000" = "11110000"
Я попытался использовать format!
макрос, но он только прокладывает вправо с пространством:
format!("{:08}", string);
В документации модуля fmt
описаны все параметры форматирования:
Заполнить/Выравнивание
Символ заполнения предоставляется обычно вместе с параметром
width
. Это указывает на то, что если форматируемое значение меньшеwidth
вокруг него будут напечатаны дополнительные символы. Дополнительные символы указываются с помощьюfill
, и выравнивание может быть одним из следующих параметров:
<
- аргумент выравнивается по левому краю в столбцахwidth
^
- аргумент выравнивается по центру в столбцахwidth
>
- аргумент выравнивается поwidth
столбцов поwidth
assert_eq!("00000110", format!("{:0>8}", "110"));
// |||
// ||+-- width
// |+--- align
// +---- fill
Смотрите также:
В качестве альтернативы ответу Shepmaster, если вы на самом деле начинаете с номера, а не строки, и хотите отобразить его как двоичный, способ форматирования:
let n: u32 = 0b11110000;
// 0 indicates pad with zeros
// 8 is the target width
// b indicates to format as binary
let formatted = format!("{:08b}", n);