LINUX.ORG.RU

Ответ на: комментарий от anonymous

А что будет на старом проце где нет popcnt?

Будет портянка из, по-моему, Hacker’s Delight.

mov    eax,edi
shr    eax,1
and    eax,0x55555555
sub    edi,eax
mov    eax,edi
and    eax,0x33333333
shr    edi,0x2
and    edi,0x33333333
add    edi,eax
mov    eax,edi
shr    eax,0x4
add    eax,edi
and    eax,0xf0f0f0f
imul   eax,eax,0x1010101
shr    eax,0x18
ret    
anonymous ()
int foo(unsigned char x)
{
	static const unsigned char table[256] =
	{
		0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
		1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
		1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
		2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
		1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
		2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
		2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
		3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
		1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
		2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
		2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
		3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
		2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
		3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
		3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
		4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
	};
	return table[x];
}
anonymous ()
Ответ на: комментарий от anonymous

Потому что ОП тупой лодырь и надо его потроллить. Высрал какую-то невнятную задачу, которую мог бы и сам решить, если бы ерундой не страдал весь семестр.

anonymous ()
Ответ на: комментарий от anonymous

Ты не умеешь троллить, как и остальные отметившиеся «тролли». Хотели бы потроллить - написали бы rm -rf или оставили бы без ответов совсем. То, что звездоносцы делают это тупак, а не «троллинг».

anonymous ()
Ответ на: комментарий от anonymous

Ага, коронавирусную.

Ну вот зачем таким помогать? Когда человек даже не пытался сделать, а сразу постит вопрос. А потом будет дипломированным специалистом…

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Нет, это — вангование. Оно может соответствовать истине, но вангованием быть не перестаёт. Вот если бы ТС написал так как ты либо похоже, например, «посчитать единицы в двоичном представлении случайного числа», тогда был бы другой разговор.

А если учесть, что подобное элементарно даже для зачётного задания, я делаю вывод, что ТС пинал балду весь семестр и никак не занимался самообразованием. Таким образом, заставляя его сформулировать задание нормальным языком я надеюсь, что в процессе он хоть думать начнёт

XMs ★★★★★ ()
Ответ на: комментарий от anonymous

Текст полноценного заявления о предоставлении академического отпуска можно найти в деканате.

А деньги лучше приберечь для врача который даст справку о болезни, если ее в деканате потребуют.

ЗЫ академ это не конец света, нормальный рабочий момент.

AntonI ()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от anonymous

Так и быть.

  1. Накладываешь маску (логическое And), чтобы значимым остался только младший бит.
  2. Проверяешь результат, если он 1, увеличиваешь счётчик единиц, нет — оставляешь без изменений.
  3. Исходное число (до наложения маски) целочисленно делишь на 2 (сдвигаешь вправо на 1).
  4. Возвращаешься к шагу 1.

Это повторяешь столько раз, сколько битов в типе unsiged char, который у тебя в задании.

Код по этому алгоритму пишется левой пяткой за 5 минут. Если нет — значит, действительно весь семестр балду пинал, мы в этом точно не виноваты. Гуглить «побитовая арифметика» и «битовые операции в C++».

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Ясно написано посчитать число установленных битов, хз зачем вы тупите.

«посчитать число установленных битов» — это не вопрос, а задача. За «решите за меня задачу» — в Job.

anonymous ()
Ответ на: комментарий от hobbit

Ну вот зачем таким помогать? Когда человек даже не пытался сделать, а сразу постит вопрос.

А зачем помогать не таким?

А потом будет дипломированным специалистом…

Это ничего не изменит. Ты переоцениваешь этот «форум».

anonymous ()
Ответ на: комментарий от anonymous

Дело в том, что решение задачи за студента — не помощь, это медвежья услуга. Пусть учится сам. Одно дело подтолкнуть в нужную сторону (да, даже если он прогуливал и сам не знает), и совсем другое — принести готовое решение на блюдечке — привыкнет, что всё за него делают, в жизни будет тяжко.

anonymous ()
Ответ на: комментарий от anonymous

«нельзя научить, можно научиться» (c)

привыкнет, что всё за него делают, в жизни будет тяжко

А мне что? Тут одни заявляют, что хотят проучить ТС-а(«потроллить»), а другие ТС-а усыновляют и начинают беспокоится за его судьбу, третьи просто тупят. У него шансов то и нет.

anonymous ()
Ответ на: комментарий от anonymous

Одно дело подтолкнуть в нужную сторону (да, даже если он прогуливал и сам не знает), и совсем другое — принести готовое решение на блюдечке — привыкнет, что всё за него делают, в жизни будет тяжко.

У него задатки НАЧАЛЬНИКА …, а начальнику не положено на калькуляторе считать …

anonymous ()