在飞镖中将目标数转换为 7 位二进制数



>我需要将目标数转换为 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
}

最新更新