Как можно выполнять побитовые операции (в частности, побитовое И) с десятичной арифметикой c? - PullRequest
0 голосов
/ 20 февраля 2020

Язык, на котором я сейчас пишу, не имеет встроенной поддержки побитовых операций, но я не знаю, как бы я go сделал с ними десятичную арифметику c.

I знаю, что битовое смещение влево и вправо составляют floor(a*2^b) и floor(a/2^b) соответственно, но я не знаю, как бы я выполнял побитовые операции И или ИЛИ.

1 Ответ

0 голосов
/ 20 февраля 2020

Вы можете извлечь младший значащий бит из положительного целочисленного значения как остаток от деления на 2.

Если вы итерируете деление значения на два и извлечение LSB, вы можете создать последовательность или массив двоичное представление входного значения. Затем вы можете объединить две такие последовательности или массивы элемент за элементом в соответствии с запрошенным оператором и, наконец, составить результат путем повторного умножения на два при добавлении результирующих битов на каждом шаге.

...