Эффективный алгоритм для суммирования последовательности 0 и 1 и записи результата в базу 2 - PullRequest
0 голосов
/ 11 октября 2018

Учитывая последовательность нулей и единиц, например,

1101110

Я хотел бы суммировать все элементы последовательности и записать результат в основание 2, используя only логические операции от 0 до 1 с.В этом примере сумма равна 5, что в базе 2 читается как

101

и является желаемым результатом.

Я знаю простой способ достижения этого, заключающийся в том, что

  1. записывает ноль в базу 2: 000
  2. добавляя к нему первый бит впоследовательность, т.е. 1, и получить 001.Это можно сделать с помощью операции XOR.
  3. добавление второго бита к 001 и получение 010 с помощью операции XOR и операции AND для вычисления переноса.
  4. действуйте таким же образом для оставшихся битов.

Я подозреваю, что этот метод далеко не оптимален с точки зрения количества операций.Ребята, вы знаете более эффективный метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...