{category}

Ruby - ビット演算

~

チルダ(演算子

意味 ビット反転演算子


~とは?

~(チルダ)は、Rubyでビット単位の反転(NOT)演算を行うための単項演算子です。整数のビット表現を全て反転させ、0を1に、1を0に変換します。

~の具体的な使い方

ビット反転の基本的な使用例

number = 5
result = ~number
puts "元の数: #{number} (二進数: #{number.to_s(2).rjust(8, '0')})"
puts "ビット反転後: #{result} (二進数: #{result.to_s(2)})"

# 正の数に戻す
positive_result = ~result
puts "再度ビット反転: #{positive_result} (二進数: #{positive_result.to_s(2).rjust(8, '0')})"

👇出力結果

元の数: 5 (二進数: 00000101)
ビット反転後: -6 (二進数: -110)
再度ビット反転: 5 (二進数: 00000101)

この例では、5のビットを反転させています。Rubyは2の補数表現を使用するため、結果は-6になります。再度ビット反転を行うと元の正の数に戻ります。

~を使った配列の全要素処理

fruits = ['りんご', 'バナナ', 'オレンジ']

~fruits.size.times do |i|
  puts "#{i + 1}番目の果物: #{fruits[~i]}"
end

👇出力結果

1番目の果物: オレンジ
2番目の果物: バナナ
3番目の果物: りんご

~演算子は配列の全要素を逆順に処理する際のイディオムとしてよく使用されます。~iは-(i+1)と等価であり、配列の最後の要素から順に処理することができます。

~に関するよくある質問

Q. ~演算子は何をするものですか?
A. ~演算子は整数のビットを全て反転させます。0を1に、1を0に変換します。
Q. なぜ~5の結果が-6になるの?
A. Rubyは2の補数表現を使用しているため、ビット反転後の値は負の数として解釈されます。5の反転は-6になります。
Q. ~演算子の一般的な用途は?
A. ビットマスクの作成、特定のビットの反転、2の補数の計算などに使用されます。また、配列の全要素を処理する際のイディオムとしても使われます。

~が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyの~や^、&&=、=、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

^

ビット単位のXOR演算子

種類: ビット演算

&&=

論理積と代入を同時に行う

種類: 論理演算子

=

代入演算子

種類: 代入

[]

Procオブジェクトを実行する別の方法

種類: Procオブジェクト

Fiber

軽量な並行処理の仕組み

種類: ファイバー