|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Denis Rojhkov 2:5024/2000.26 15 Jun 2001 23:10:33 To : Mike Roschin Subject : ? --------------------------------------------------------------------------------
14 June 2001, Thursday, ровно в 10:56, Mike Roschin писал к All про '?':
MR> Джентльмены, можно ли при помощи операций +, -, *, **(степень), /,
MR> \(целочисленное) и %% (по модулю) определить входждение бита N в число X,
MR> _иначе_ чем последовательным перебором битой от старшего к младшим?
Hапример, так:
X = X \ (2 ** N)
if X NE ((X \ 2) * 2) (или (X %% 2) E 1)
return TRUE
или так:
if (X / (2 ** (N + 1))) G (X \ (2 ** (N + 1)))
return TRUE
или, если NBITS - разрядность числа, так:
X = (X \ (2 ** N)) * (2 ** (NBITS - 1))
if X NE 0
return TRUE
а можно и...
Это первое, что пришло в голову, а дальше может и сам что-нибудь придумаешь.
That's all, Mike. Bye.
Денис В. Рожков
np: Юлиан "I'll bury you, stinking bitch"
... Скажи воздуху - нет
--- Весь покрытый золотом, абсолютно весь. 3.0.1
* Origin: Floating point unit (2:5024/2000.26)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/45043b2aa4d2.html, оценка из 5, голосов 10
|