Учитывая последовательность нулей и единиц, например,
1101110
Я хотел бы суммировать все элементы последовательности и записать результат в основание 2, используя only логические операции от 0 до 1 с.В этом примере сумма равна 5, что в базе 2 читается как
101
и является желаемым результатом.
Я знаю простой способ достижения этого, заключающийся в том, что
- записывает ноль в базу 2:
000
- добавляя к нему первый бит впоследовательность, т.е.
1
, и получить 001
.Это можно сделать с помощью операции XOR. - добавление второго бита к
001
и получение 010
с помощью операции XOR и операции AND для вычисления переноса. - действуйте таким же образом для оставшихся битов.
Я подозреваю, что этот метод далеко не оптимален с точки зрения количества операций.Ребята, вы знаете более эффективный метод?