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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Max Alekseyev                        2:5015/60      20 Jul 2001  16:11:58
 To : Yuriy Kaminskiy
 Subject : найти ближайшую бОльшую степень двойки минус 1
 -------------------------------------------------------------------------------- 
 
 
 Replying to a message of Yuriy Kaminskiy to Max Alekseyev:
 
  АМ>> Число - целое 8 байт (Int64) АМ> необх найти ближайшую бОльшую
  АМ>> степень двойки минус 1, т.е. АМ> для 4...7 - это 7; АМ> для
  АМ>> 32...63 - это 63;
  MA>> вот навскидку:
  MA>> long long f(long long t) { while(t&(t+1)) t|=(t>>1); return t; }
  YK>  Хех. Оно, конечно, замечательно, только работает в 1.5 раза
  YK> медленнее, чем вариант AM (val |= val>>1;...;val |= val>>32;) [на
  YK> cyrix 6x86MX].  
 
 Это на каких данных? Время усредненное?
 
  YK> Ключевое слово - условный переход.
 
 Ok. A так?
 
 long long f2(long long t) 
 { 
   long long z = t;
   while(z) t|=(z>>=1);
   return t; 
 }
 
 Или так?
 
 long long f3(long long t) 
 { 
   long long z;
   while(t) t &= (z=t-1);
   return z|(z+1);
 }
 
 Regards,      ш.ш
         Max    ~
 
 --- OS/2 Uptime:  0d 1h 25m 31s 828ms
  * Origin: Он в водке тонет, а сам не плотит. (2:5015/60)
 
 

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

 Тема:    Автор:    Дата:  
 найти ближайшую бОльшую степень двойки минус 1   Ђ­¤аҐ© Њ ЄбЁ¬Ґ­Є®   16 Jul 2001 12:29:30 
 найти ближайшую бОльшую степень двойки минус 1   Stepan Polovnikov   16 Jul 2001 20:59:21 
 найти ближайшую бОльшую степень двойки минус 1   Vladislav Irdullin   16 Jul 2001 22:57:34 
 найти ближайшую бОльшую степень двойки минус 1   Max Alekseyev   18 Jul 2001 03:28:58 
 Re: найти ближайшую бОльшую степень двойки минус 1   Yuriy Kaminskiy   19 Jul 2001 22:03:33 
 найти ближайшую бОльшую степень двойки минус 1   Max Alekseyev   20 Jul 2001 16:11:58 
 найти ближайшую бОльшую степень двойки минус 1   Stanislav Shwartsman   20 Jul 2001 16:30:36 
 найти ближайшую бОльшую степень двойки минус 1   Kluchnikov Eugene   20 Jul 2001 20:00:32 
 найти ближайшую бОльшую степень двойки минус 1   Gleb   24 Jul 2001 21:55:11 
 найти ближайшую бОльшую степень двойки минус 1   Kluchnikov Eugene   25 Jul 2001 00:19:52 
 [*] Re: найти ближайшую бОльшую степень двойки минус 1   Comoderator Of Ru Algorithms   25 Jul 2001 17:26:24 
 Re: найти ближайшую бОльшую степень двойки минус 1   Comoderator Of Ru Algorithms   25 Jul 2001 17:20:58 
 найти ближайшую бОльшую степень двойки минус 1   Max Alekseyev   21 Jul 2001 00:31:18 
 найти ближайшую бОльшую степень двойки минус 1   Stanislav Shwartsman   21 Jul 2001 09:43:02 
 найти ближайшую бОльшую степень двойки минус 1   Max Alekseyev   21 Jul 2001 14:03:36 
 Re: найти ближайшую бОльшую степень двой ки минус 1   Andrew Ezhguroff   21 Jul 2001 15:47:14 
 найти ближайшую бОльшую степень двой ки минус 1   Max Alekseyev   21 Jul 2001 19:40:20 
 Re: найти ближайшую бОльшую степень двой ки минус 1   Andrew Ezhguroff   22 Jul 2001 02:17:25 
 найти ближайшую бОльшую степень двой ки минус 1   Dmitriy Litskalov   22 Jul 2001 10:52:54 
 найти ближайшую бОльшую степень двой ки минус 1   Dmitriy Litskalov   22 Jul 2001 12:33:58 
Архивное /ru.algorithms/18133b585c27.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional