2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Выделить только старший бит двоичного числа
Сообщение14.05.2007, 15:45 
Допустим имеем х = 0110.1100

Тогда х&(-x) дает 0000.0100, то есть получаем число только с младшим битом.

Возможно ли с помощью только бинарных операций и сдвига получить число со старшим битом (в данном случае 0100.0000). Без циклов и без взятия логарифма по основанию 2.

 
 
 
 
Сообщение14.05.2007, 15:55 
Аватара пользователя
См. книгу "Algorithms for programmers". Там полно подобных трюков.
Или вот еще: The Aggregate Magic Algorithms.

 
 
 
 
Сообщение14.05.2007, 17:49 
Спасибо за ссылки!

 
 
 
 
Сообщение14.05.2007, 23:20 
Аватара пользователя
Соответственно, вот возможный ответ на исходный вопрос:
http://aggregate.org/MAGIC/#Most%20Sign ... %201%20Bit

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group