LINUX.ORG.RU

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

Нужно посчитать количество единиц, помогите, пожалуйста

Exis148
() автор топика

Бог поможет.

/s

anonymous
()
Ответ на: комментарий от 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
()

Оспаде, двигай 8 раз и считай столько единиц выпало. Ну или по таблице.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

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

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

Маску используйте

Согласен, берегите здоровье, своё и окружающих.

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

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

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

Ребят, кто может полный код написать? Я буду очень благодарен, могу деньгами отблагодарить. Умоляю вас.

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

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

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

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

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

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

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

Тогда это не «троллинг». Возьмись за ум, подучи матчасть, иначе ты становишься конкурентом той паре звездатых.

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

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

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

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

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

Это ваш тупак и резонёрство. Больше ничего.

ТС пинал балду весь семестр

Всем по*уй на это обстоятельство.

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

Так и быть.

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

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

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

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

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

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

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

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

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

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

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

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

Можем! Надо брать академ.

Зашёл в тред, чтобы прочитать этот ответ.

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

в Job

Но ты не удержался и запостил в dev. Логика это не твоё, смирись. Или хотя бы менее пафосно садись в лужу.

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

Если бы он мог так сформулировать, то и нагуглить бы смог.

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

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

anonymous
()

Скажите преподавателю, что он дурак старый. так как пишу для Mocrosoft новую компилюгу

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

в Job

Но ты не удержался и запостил в dev.

Если ты видишь здесь противоречие, то логика как раз не твоё. В луже уже занято.

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

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

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

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

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

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

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

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

Проверяешь результат, если он 1, увеличиваешь счётчик единиц, нет — оставляешь без изменений.

«Пятизвёздочник - это диагноз.» №2

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

Продолжай доказывать, что не обделался. На большее тебя всё равно не хватает.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.