[過去ログ]
スレ立てるまでもない質問はここで 165匹目 (1002レス)
スレ立てるまでもない質問はここで 165匹目 http://mevius.5ch.net/test/read.cgi/tech/1687260267/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
973: デフォルトの名無しさん (ワッチョイ c7e3-Rf8y) [sage] 2024/12/11(水) 15:06:45.43 ID:j0qahdVT0 popCountが2進数でみたときに立っている1のビットの個数を表す関数として (popCount (xor x (x-1)))-1 というコードが 最右の1がたっているビットの位置を返す(8なら3 4なら2 3や5や1なら0 というものみたいなのですがなぜこうなるのか解説していただけませんか xor x (x-1)の部分だけでも良いので(C言語だとx^(x-1))お願いします http://mevius.5ch.net/test/read.cgi/tech/1687260267/973
975: デフォルトの名無しさん (ワッチョイ c7e3-Rf8y) [sage] 2024/12/11(水) 15:27:46.03 ID:j0qahdVT0 入力です。参考までにC++コードでかきました #include <bits/stdc++.h> using namespace std; int popCount(int x){ return __builtin_popcount(x);} int leastBit(int x){ return (popCount(x^(x-1))-1); } int main() { for(int i=1;i<10;++i){ cout << leastBit(i) << endl; } } http://mevius.5ch.net/test/read.cgi/tech/1687260267/975
977: 973 (ワッチョイ c7e3-Rf8y) [sage] 2024/12/11(水) 15:41:09.56 ID:j0qahdVT0 >>976 理解できました!ありがとうございます! http://mevius.5ch.net/test/read.cgi/tech/1687260267/977
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.489s*