Короткое деление без знака для двоичного представления в C - PullRequest
0 голосов
/ 08 марта 2019

Итак, я пытаюсь сделать целочисленное деление на двоичное представление беззнакового короткого замыкания.Например: скажем, 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 парыКак бы я поступил с точки зрения реализации целочисленного деления без использования арифметических операций, таких как модуль, +, -, *, /.

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