$log2 (底2の対数)

最終更新:2026-10-09

$log2 (底2の対数)

$log2 は数値の底 2 の対数を返します。二分探索の深さ、二分木の高さ、ビット幅の見積もり(数値に必要なビット数など)といった計算機科学の文脈で使われます。null または欠落した引数は null を返します。入力は正でなければならず、0 や負の値は null を返します。底が 2 に固定された $log の特殊形で、コードを簡潔に保ちます。$log2 は 2 の累乗を逆算するため、$pow: [2, x] の対になる演算子です。

カテゴリ数学
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $log2: <numeric-expression> }

⚙️ パラメータ

数値数値、または数値に解決される式。0 より大きい必要があります。

戻り値:入力の底2の対数。入力が非正、null、または欠落している場合は null

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $log2: 整数に必要なビット数を推定
db.numbers.aggregate([
  { $project: {
      bits: { $ceil: { $add: [{ $log2: '$value' }, 1] } }
  } }
])

出力:

{ '_id': 1, 'bits': 10 }
{ '_id': 2, 'bits': 8 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$log2 はいつ使いますか?
A二分探索、二分木の深さ、ビット幅の見積もりなどです。
Q$log2(1024) はいくつですか?
A10 です。2 の 10 乗は 1024 だからです。
Q$log2 と $pow の関係は?
A互いに逆です。$pow: [2, x] は 2 の x 乗を計算し、$log2 で元に戻ります。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%