Как преобразовать двоичный код в число в Dart

Например: [0, 0, 0, 1] обрабатывается как 0001, который является двоичным представлением 1.


Ответы (2 шт):

Автор решения: MiT

Можно так (где radix это система счисления):

void main() {
  // to decimal
  print(int.parse([0, 0, 0, 1].join(), radix: 2));
  print(int.parse('0001', radix: 2));
  // to binary
  print(9.toRadixString(2));
}
→ Ссылка
Автор решения: Wolf_legend145

Традиционный подход состоит в том, чтобы перебирать двоичные цифры и выполнять битовые сдвиги и ORs:

int binaryArrayToNumber(List<int> digits) {

var result = 0;
  for (var digit in digits) {
    result <<= 1;
    result |= digit;
  }
  return result;
}

Более простой но менее подверженный ошибкам подход подход состоял бы в преобразовании списка цифр в строку и последующем ее разборе:

int binaryArrayToNumber(List<int> digits) =>
int.parse(digits.join(""), radix: 2);
→ Ссылка