Вопрос № 54167: Здравствуйте. Как можно (если можно) делить на 8 по модулю с помощью поразрядных операторов ( "|", "&" и т. д). Например :
x / 8 == x >> 3, x % 8 == ? В книгах не нашел. Спасибо....
Вопрос № 54.167
Здравствуйте. Как можно (если можно) делить на 8 по модулю с помощью поразрядных операторов ( "|", "&" и т. д). Например :
x / 8 == x >> 3, x % 8 == ? В книгах не нашел. Спасибо.
Отправлен: 03.09.2006, 14:05
Вопрос задал: Lameruga (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Lameruga!
Вот формула:
a % b = а - b * (а / b);
Думаю, эти операторы (-, *, /) можете написать с помощью поразрядных операторов...
Удачи!
Ответ отправил: Яруллин Азат Рифкатович (статус: Студент)
Ответ отправлен: 03.09.2006, 15:15 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Melamed
Здравствуйте, Lameruga!
Остаток деления на 8 можно записать с попошью поразрадного сдвига так:
x % 8 == x - (x>>3)<<3
Ответ отправил: Melamed (статус: 3-ий класс)
Ответ отправлен: 03.09.2006, 15:33 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Mihasic
Здравствуйте, Lameruga!
x / 8 == x >> 3
x % 8 == x & 7
7 == 00000111b (пусть не по сишному, но это в битах)
Ответ отправил: Mihasic (статус: 7-ой класс)
Ответ отправлен: 03.09.2006, 19:51 Оценка за ответ: 5 Комментарий оценки: Действительно работает. И так просто.Спасибо.