Ответ 1
Моя первая идея состояла в том, чтобы просто умножить на 0,2 (но я не знаю, как реализовать это, используя побитовые операторы с верхней части головы).
Возможный дубликат:
выполнить разделение с помощью битового оператора
Разделите число на 3 без использования *,/, +, -,% операторов
Я столкнулся с этим вопросом в интервью. Я хочу знать, есть ли способ разделить число на 5 без использования оператора деления и если любое возможное решение существует только с помощью побитовых операторов. Я вычислил один из них, используя повторное вычитание до нуля. Номер может быть подписан и без знака. Пожалуйста, предложите любой выход, не используя +, -,/, * и%.
Моя первая идея состояла в том, чтобы просто умножить на 0,2 (но я не знаю, как реализовать это, используя побитовые операторы с верхней части головы).
Просто уменьшите деление на вычитание одного числа из другого, пока не достигнете нуля: D
int number = 25;
int divisor = 5;
int result = 0;
while((number-divisor)>=0){
result++;
number = number - divisor;
}
Кажется, я нашел выход из этой ссылки, которая, кажется, дает ответ на мой вопрос. http://codegambler.wordpress.com/2009/08/11/division-operation-without-using-division-operator/