質問失礼いたします。
以下のpopcountは引数xを2進数で表したときの1の数を返す関数なのですが、
動作原理がよく理解できないため考え方のヒントなどをいただけないでしょうか。
int popcount(unsigned long long x)
{
x = (x & 0x5555555555555555) + (x >> 1 & 0x5555555555555555);
x = (x & 0x3333333333333333) + (x >> 2 & 0x3333333333333333);
return (int)(((x & 0x0f0f0f0f0f0f0f0f) + (x >> 4 & 0x0f0f0f0f0f0f0f0f)) % 0xff);
}
以下のpopcount2は自分で作ったもので、これならうまくいくことは分かるのですが、
上のpopcountも本質的には同じことをやっていると考えていいものなのでしょうか。
int popcount2(unsigned long long x)
{
int n = 0;
for (int i = 0; i < 64; i++)
{
if ((x & 1ull << i) != 0ull)
{
n++;
}
}
return n;
}
どうぞよろしくお願いいたします。
C言語なら俺に聞け 153
■ このスレッドは過去ログ倉庫に格納されています
489デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/05(木) 23:45:36.26ID:5h4sz8350■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】江別大学生集団暴行死 川村葉音被告に懲役30年、瀧澤海裕被告に懲役20年の判決 [おっさん友の会★]
- 【W杯】韓国が南アに敗退 3位でGL終了 ラウンド32進出は他試合結果次第に 3連勝メキシコが首位&南アフリカが初の決勝Tへ ★3 [阿弥陀ヶ峰★]
- 【速報】 ベネズエラでM7超地震、死者数は最大10万人にのぼる可能性、大統領代行が非常事態宣言 [お断り★]
- 【米紙報道】高市首相「コングレッショナルフェロー(官職)」経歴詐称疑惑… ★6 [BFU★]
- 「たばこのポイ捨てをしちゃだめだよ」男児に注意され激高、自転車を投げつけ現行犯逮捕 神奈川 [少考さん★]
- 「クチャラーがどうしても嫌」「寿司店で鼻をすする人が」…注意しにくい“音ハラ”「音が幻聴になりうつ病に発展する場合も」専門家 [少考さん★]
- 【MLB】ツインズ vs ドジャース ★7
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★177【メキシコ/カナダ/アメリカ】
- ハム専 ★7
- はません ★2
- 巨専】
- こいせん 全レス転載禁止
- 【悲報】「晋バルサン」Xでガチで大炎上してしまう🔥wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [175344491]
- 【速報】北海道江別市集団暴行盗致死事件・川村葉音被告、死刑でも無期でもなく懲役30年判決 [591180291]
- JA「もう倉庫に入らない」新米が倉庫に入りきらず悲鳴🤭 [993451824]
- 累積赤字500億円クールジャパン2「税金34兆円をアニメとかにつっこむ。政府、警察、自衛隊批判は許さない」 [633746646]
- 【陰湿日本人】高1JK(生徒会長)を全校生徒の前で「つるし上げ」イジメ認定へ [305926466]
- 韓国0-1南アフリカ(後半20分) [667744927]