Двоичнй код
От: GrigArsh  
Дата: 06.09.06 06:53
Оценка:
Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]
Re: Двоичнй код
От: denaturat  
Дата: 06.09.06 07:10
Оценка:
Здравствуйте, GrigArsh, Вы писали:

GA>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]


16 раз сдвинь вправо или влево и проверь крайний правый или крайний левый бит по маске соответственно.
Re: Двоичнй код
От: e-garin Россия  
Дата: 06.09.06 07:10
Оценка:
Здравствуйте, GrigArsh, Вы писали:

GA>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]

Мне в голову другого способа "узнать" кроме как "посчитать" не приходит...

Например, так:

unsigned short num = ... //исследуемое число
int count = 0; //счётчик
for(; num; num >>= 1)
 count += num&1;
А мне нравится жить :).
Re: Двоичнй код
От: olexandr Новороссия http://demotivation.me/images/20140818/lxz0l278b9ep.jpg
Дата: 06.09.06 07:38
Оценка:
Здравствуйте, GrigArsh, Вы писали:

GA>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]


int f(int n)
{
   static a[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 5};
     return a[n & 0xff] + a[(n >> 8) & 0xff];
}


Примерно так...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Некроссплатформенность маловероятна (c) Sheridan
...трава никак не влияет, разве что срывает покровы барьеров... (с) мыщъх
Re[2]: Двоичнй код
От: olexandr Новороссия http://demotivation.me/images/20140818/lxz0l278b9ep.jpg
Дата: 06.09.06 07:41
Оценка:
Здравствуйте, olexandr, Вы писали:

O>Здравствуйте, GrigArsh, Вы писали:


GA>>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]


O>
O>int f(int n)
O>{
O>   static a[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 5};
O>     return a[n & 0xff] + a[(n >> 8) & 0xff];
O>}
O>


O>Примерно так...


Сорри, не так Не проснулся еще...

int f(int n)
{
   static a[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4};
     return a[n & 0xf] + a[(n >> 4) & 0xf] + a[(n >> 8) & 0x0f] + a[(n >> 12) & 0x0f];
}


То что в return можно циклом оформить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Некроссплатформенность маловероятна (c) Sheridan
...трава никак не влияет, разве что срывает покровы барьеров... (с) мыщъх
Re: Двоичнй код
От: _Dreamer Россия  
Дата: 06.09.06 08:00
Оценка:
Здравствуйте, GrigArsh, Вы писали:

GA>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]


для 32 и 8 битового числа было подробнейшим образом вот тут
Автор: DemAS
Дата: 16.05.03
объяснено.
Re: Двоичнй код
От: trophim Россия  
Дата: 06.09.06 20:00
Оценка:
Здравствуйте, GrigArsh, Вы писали:

GA>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]


Вам надо "Hacker's delight / Henry S. Warren, Jr." покурить. Там подобных алгоритмов (битовые операции) — уйма. Все разжевано. Исключительно полезная книга. Есть и на русском.
[EOF]
Let it be! — Давайте есть пчелу!
Re: Двоичнй код
От: korzhik Россия  
Дата: 06.09.06 20:27
Оценка:
Здравствуйте, GrigArsh, Вы писали:

GA>Как узнать, сколько 1 в двоичном коде целого числа из диапазона [0 65535]


Классическая ссылка
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.