еще раз о битах
Jan. 14th, 2008 12:44 amВот еще одна задачка для программистов. Если знаете ответ, не пишите. Комментарии скрывать не буду; советую попробовать решить самостоятельно, до того, как подсматривать чужие ответы - красивая штука.
Дано 64-битное число x. Мы делаем с ним следующее (в псевдокоде):
Здесь rot - вращение числа на один разряд влево (выходящий слева бит становится вправо). И accum, и x - 64-битные числа без знака; при сложении мы отбрасываем бит переноса, если он образуется.
Вопросы: 1) что мы получаем? 2) почему это так получается?
Дано 64-битное число x. Мы делаем с ним следующее (в псевдокоде):
accum = 0
do 64 times:
accum += x
x = x rot 1
endЗдесь rot - вращение числа на один разряд влево (выходящий слева бит становится вправо). И accum, и x - 64-битные числа без знака; при сложении мы отбрасываем бит переноса, если он образуется.
Вопросы: 1) что мы получаем? 2) почему это так получается?
no subject
Date: 2008-01-14 08:29 pm (UTC)