整数内のすべての 1 ビット位置のリストを取得するためのより効率的/高速な方法を持っている人はいますか? 私はこれを持っています:
array_keys(
str_split(
strrev(
decbin(1234)
)
), '1', true
)
出力は次のとおりです。
array(1, 4, 6, 7, 10)
整数内のすべての 1 ビット位置のリストを取得するためのより効率的/高速な方法を持っている人はいますか? 私はこれを持っています:
array_keys(
str_split(
strrev(
decbin(1234)
)
), '1', true
)
出力は次のとおりです。
array(1, 4, 6, 7, 10)
正規表現を試すことができますが、あなたのソリューションの方が優れているに違いありません。
preg_match_all('/1/', strrev(decbin(1234)), $matches, PREG_OFFSET_CAPTURE);
$output = array_map(function($item){
return $item[1];
}, $matches[0]);
出力:
array (size=5)
0 => int 1
1 => int 4
2 => int 6
3 => int 7
4 => int 10