Мне нужно умножить int на дробь, используя побитовые операторы без циклов и тому подобное.
Например, мне нужно умножить на х на 3/8.
Я думал, что вы:
int value = (x << 1) + x; // Multiply by 3
value = (value >> 3); // Divide by 8
Но это не работает.Я пробовал прибегать к двоичной дроби, но это дает примеры с плавающей запятой.Я не знаю точно, если это домашнее задание для плавающей запятой, но моя догадка нет, но готовит меня к этому.Итак, какие-либо предложения?
Мне нужно округлить до нуля, так что какие-либо предложения?Это не работает для номера -268435457.