Извлечение n старших не-нулевых битов из int в C++ без циклов

Я хочу извлечь n старших битов из целого числа в C++ и преобразовать эти n битов в целое число.

Например

int a=1200;
// its binary representation within 32 bit word-size is
// 00000000000000000000010010110000

Теперь я хочу извлечь 4 наиболее значащие цифры из этого представления, то есть 1111

00000000000000000000010010110000
                     ^^^^

и снова преобразовать их в целое число (1001 в десятичном виде = 9).

Как возможна простая функция C++ без циклов?

5
задан Roy Sharon 6 July 2012 в 15:03
поделиться