Итак, я пытаюсь сделать целочисленное деление на двоичное представление беззнакового короткого замыкания.Например: скажем, Unsigned Short x = 5, двоичное представление чисел равно
1111. 7 будет 111. Я хочу иметь возможность найти количество пар в битовом представлении единицы.Моя идея состояла в том, чтобы посчитать количество единиц с помощью битовых манипуляций следующим образом.
unsigned short divide(unsigned short input) {
unsigned short count = 0;
while (input != 0){
if ((input & 1) == 1)
count = count + 1;
input = input >> 1;
}
return count;
}
Приведенный выше код работает для получения общего числа 1 бит в двоичном представлении.Пример: в моем 7 он вернул бы 3, так как в двоичном представлении есть 3 1.Теперь я просто хочу иметь возможность выполнять целочисленное деление, такое как 3/2 = 1, чтобы найти количество 1 пар.3/2 для короткого знака без знака будет 1, поскольку есть только 1 пара битов 1.если для 5, это будет 4/2 = 2.2 парыКак бы я поступил с точки зрения реализации целочисленного деления без использования арифметических операций, таких как модуль, +, -, *, /.