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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sashka Yackubtchick                  2:5054/29.54   22 Nov 2001  21:53:42
 To : Sergey Martianov
 Subject : Арифметика,признак делимости.
 -------------------------------------------------------------------------------- 
 
 
 20 Nov 01 02:22, Sergey Martianov писАл(а) к All:
 
  SM>                            Hi, All!
 
  SM> 2,4,8,3,9,6,5,25,10,100,1000,11.
  SM> Интеpесуют пpизнаки делимости на дpугие свеpх вышепеpечисленных.
 
 Если говорить о компьютерных методах то очень быстрым и простым является
 определение кратности любым степеням двойки с помощью AND где
 число ANDится с числом в котором выставлены только младшие биты (подряд)
 в колличестве = степени двойки на кратность которой мы проверяем.
 Если результат = 0 то число кратно
 Hапример (b - означает число в двоичном представлении test анолог and
 без записи результата в операнд);
 if число test 1b  = 0 then оно кратно 2^1 (или двойке)
 if число test 11b = 0 then оно кратно 2^2 (или четверке)
 if число test 11111111b = 0 then оно кратно 2^8 (256)
 Соответсвенно ясно, что число кратное любой степени двойки будет кратно двойке и
 её меньшей чем текущая степени.
 Поэтому достаточно найти (просканировать) 1ый младший выставленный бит и
 порядковый номер этого бита (от нуля по тому что если мы биты считали от единицы
 то найденый бит указал бы как раз ту степень двойки на которую число уже не
 делится) укажет какой максимально степени двойки кратно число (в том числе и
 если оно кратно лишь 2^0 (то есть 1му)
 Hапример для i386 команда bsf ищет от младших к страшим первый выставленый бит
 
 поэтому если eax число то
     bsf ecx,eax
     в ecx оказывается порядковый номер бита
 потому как все биты до бита представляющего кратную степень двойки будут равны
 нулю (в противном случае будет остаток при делении на эту степень двойки)
  если в ecx окажется 5 то число кратно 2^5 и конечно же 2^4,2^3,2^2..2^0
 Пока!
              Sashka, The Svin.
 
 --- GoldED/W32 3.00.Beta1+
  * Origin: Svin, Perm, Russia  (2:5054/29.54)
 
 

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

 Тема:    Автор:    Дата:  
 Арифметика,признак делимости.   Sergey Martianov   20 Nov 2001 03:22:08 
 Арифметика,признак делимости.   Andrew Plyako   22 Nov 2001 11:56:36 
 Арифметика,признак делимости.   Alexander Chelmodeev   23 Nov 2001 22:54:00 
 Арифметика,признак делимости.   Sashka Yackubtchick   22 Nov 2001 21:53:42 
 Re: Арифметика,признак делимости.   Yuriy Kaminskiy   27 Nov 2001 18:37:46 
 Арифметика,признак делимости.   Sashka Yackubtchick   29 Nov 2001 01:30:16 
 Арифметика,признак делимости.   Sashka Yackubtchick   29 Nov 2001 01:54:54 
 Re: Арифметика,признак делимости.   Yuriy Kaminskiy   29 Nov 2001 02:19:16 
 Арифметика,признак делимости.   Sashka Yackubtchick   22 Feb 2002 07:35:47 
 Арифметика,признак делимости.   Kluchnikov Eugene   24 Nov 2001 01:03:32 
Архивное /ru.algorithms/33843bfd6cbc.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional