Самый простой способ поместить строку с 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);