>我需要将目标数转换为 7 位二进制。就像 11(desimal) 的二进制是001011。
我确实在 starkoverflow 中找到了一个解决方案,但它不像我想要的那样工作
String dec2bin(int dec) {
var bin = '';
while (dec > 0) {
bin = (dec % 2 == 0 ? '0' : '1') + bin;
dec ~/= 2;
}
return bin;
}
它返回1011
,将 1011 之前的所有零都删掉
我该如何解决?
只需在返回之前在String
上使用padLeft
,以确保它是以零为前缀的最小长度。此外,您的dec2bin
方法可以简化为仅对输入整数使用toRadixString(2)
。所以像这样:
String dec2bin(int dec) => dec.toRadixString(2).padLeft(6, '0');
void main() {
print(dec2bin(11)); // 001011
}