Показать сообщение отдельно
Старый 27.03.2009, 18:38   #173
Новичок
 
Регистрация: 17.12.2007
Сообщений: 22
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
Aniks
По умолчанию

Красиво реализовано. Я по-другому делал. Ключ(32бита) разбивался на 4 части. Два числа уменьшались на единицу каждые 8 байт и два счетчика увеличивались, когда первые числа были равны 0.

(K=33, биты от 1-32, т.е. Первый бит = K-32, последний К-1)
Код:
1 Число (уменьшается каждые 8 байт):
      Bit [k - 13] 
      Bit [k - 14] 
      Bit [k - 15] 
      Bit [k - 16]
      Bit [k - 1] 
      Bit [k - 2] 
      Bit [k - 3] 
      Bit [k - 4] 
      Bit [k - 5] 
      Bit [k - 6] 
      Bit [k - 7] 
      Bit [k - 8] 

2 Число (уменьшается каждые 8 байт):
      Bit [k - 31] 
      Bit [k - 32] 
      Bit [k - 17] 
      Bit [k - 18]
      Bit [k - 19] 
      Bit [k - 20]
      Bit [k - 21] 
      Bit [k - 22] 
      Bit [k - 23] 

3 Число (увеличивается, когда первое равно 0):
      Bit [k - 32] 
      Bit [k - 17] 
      Bit [k - 18]  
      Bit [k - 19]  
      Bit [k - 20] 
      Bit [k - 21] 
      Bit [k - 22] 
      Bit [k - 23] 
      Bit [k - 24] 
      Bit [k - 9]  
      Bit [k - 10] 
      Bit [k - 11] 
      Bit [k - 12] 

4 Число (увеличивается когда 2-ое равно 0):
      Bit [k - 25] 
      Bit [k - 26] 
      Bit [k - 27] 
      Bit [k - 28] 
      Bit [k - 29] 
      Bit [k - 30] 
      Bit [k - 31]
В С++ можно реализовать с помощью битовых массивов.
Aniks вне форума   Ответить с цитированием
За это сообщение Aniks нажился спасибкой от: