Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Vladimir Polyanin                    2:467/95.999   15 Jun 2001  23:35:36
 To : Mike Roschin
 Subject : ?
 -------------------------------------------------------------------------------- 
 
 
   Hе успели меня закопать /14 Июн 01 11:56/, как /*Mike Roschin*/ уже завещал
 _/All/_:
 
  MR>  Джентльмены, можно ли при помощи операций +, -, *, **(степень), /,
  MR> \(целочисленное) и %% (по модулю) определить входждение бита N в число
  MR> X, _иначе_ чем последовательным перебором битой от старшего к младшим?
  MR>
  MR> do exp:=15 to 0
  MR>   mask:=2**exp
  MR>   if X GE mask
  MR>   (
  MR>     if exp=N return TRUE
  MR>     X := X - mask
  MR>   )
  MR>
  MR> Так работает. Hо криво это. Хочется короче и проще, но что-то никак не
  MR> придумывается. Подскажите, а?
 
 Можно так:
 
 K:=X/(2**N)                   ; Сдвиг на N разрядов вправо,
                               ;  теперь N-ый разряд стал младшим.
 return K\2=1                  ; Возвращаем состояние младшего бита.
 
                С прощальным _оскалом_ *Vladimir Polyanin* ...
 
 ... And his name that sat on him was Death and Hell followed him...
 --- [Team Сисопка 2000]
  * Origin: Я телу обещал, что с ним теперь навеки... (2:467/95.999)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ?   Mike Roschin   14 Jun 2001 11:56:59 
 ?   Sergey Andrianov   15 Jun 2001 08:46:20 
 ?   Vladimir Polyanin   15 Jun 2001 23:35:36 
 ?   Mike Roschin   19 Jun 2001 15:49:00 
 ?   Denis Rojhkov   15 Jun 2001 23:10:33 
 ?   Mike Roschin   19 Jun 2001 16:32:01 
 вхождение бита при помощи... рахита   Yuri Burger   16 Jun 2001 20:21:58 
Архивное /ru.algorithms/144463b2a9e13.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional