Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Integer::nobits?()メソッドの使い方

nobits?メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

nobits?メソッドは、レシーバであるIntegerオブジェクトが表す数値の全てのビットが「オフ」(つまりセットされていない状態)であるかを判定するメソッドです。このメソッドは、対象の数値がビット表現において一つもセットされたビットを持たない、すなわち数値が厳密に0である場合にのみtrueを返します。それ以外の全ての数値、例えば正の整数(例: 1100)、負の整数(例: -1-50)の場合にはfalseを返します。

具体的な例を挙げますと、0.nobits?を実行するとtrueが返されます。これは、数値0がビット表現において全てのビットがオフであるためです。一方で、1.nobits?-1.nobits?255.nobits?のような0以外の値をレシーバとしてこのメソッドを呼び出すと、それぞれfalseが返されます。

このメソッドは、プログラム内で特定の整数値が確実に0であることを確認したい場合に有効です。特に、ビット演算を扱うようなコードにおいて、変数や式の評価結果が「全くビットが立っていない状態」であることを簡潔かつ意図的に表現する際に役立ちます。self == 0と同じ結果をもたらしますが、nobits?を使用することで、数値が0であることの「ビットレベルでの完全なゼロ状態」という側面をより明確にコードに記述することができます。

構文(syntax)

10.nobits?

引数(parameters)

mask

  • mask: 整数

Integer#nobits? は、レシーバ (Integer オブジェクト自身) のビット列のうち、指定された mask で指定されたビットがすべて 0 であるかどうかを判定します。

例えば、10.nobits?(4) の場合、10 のビット表現は 1010 です。mask として 4 を指定すると、そのビット表現は 0100 になります。nobits? メソッドは、1010 の 2 番目のビット (右から 3 番目) と 10 の 2 番目のビットが両方とも 0 であるかどうかを確認します。この場合、10 の 2 番目のビットは 0 なので、true を返します。

戻り値(return)

Boolean

Integer#nobits? は、Integer オブジェクトが 0 または -1 である場合に true を返します。それ以外の場合は false を返します。

関連コンテンツ

関連プログラミング言語