Изменения

Перейти к: навигация, поиск

Побитовые операции

764 байта добавлено, 20:05, 13 марта 2016
Вычисление модуля числа без использования условного оператора
====Вычисление модуля числа без использования условного оператора====
Пусть дано число <tex>x</tex>. Если <tex>x</tex> положительно, то <tex>mask = 0</tex>, и <tex>(x + mask) \oplus mask = x</tex>. В случае, если <tex>x</tex> отрицательно, <tex>mask = -1</tex>. Тогда получается, что мы работаем с числом <tex>x</tex> так, как будто оно представлено в [[Представление целых чисел: прямой код, код со сдвигом, дополнительный код #Код со сдвигом |коде со сдвигом]] с тем отличием, что у нас знаковый бит принимает значение <tex>1</tex> для отрицательных чисел, а <tex>0</tex> {{---}} для положительных.
<code>
<font color = green>// n {{---}} разрядность числа</font>
276
правок

Навигация