{category}

Python - ビット演算子

>>

シフト(演算子

意味 ビット右シフト


>>とは?

ビット演算子の一つで、数値を2進数として見て、指定した桁数だけ右にビットをずらします。空いたビットには符号ビットが埋められます。

>>の具体的な使い方

ビット右シフトの基本例

# ビット右シフトの基本例
a = 10  # 2進数で1010
result = a >> 2
print(f'{a} >> 2 = {result}')

# 2進数表記で確認
print(f'{a} の2進数表記: {bin(a)}')
print(f'{result} の2進数表記: {bin(result)}')

👇出力結果

10 >> 2 = 2
10 の2進数表記: 0b1010
2 の2進数表記: 0b10

変数aに10を代入し、ビット右シフト演算子(>>)を使って2ビット右にシフトしています。aを2進数で見ると1010です。これを2ビット右にシフトすると0010になり、10進数で2に相当します。

ビット右シフトを使った高速な除算

# 2の累乗での高速な切り捨て除算
base = 64
for i in range(4):
    result = base >> i
    print(f'{base} // 2^{i} = {base} >> {i} = {result}')

# 負の数の右シフト
negative = -64
result = negative >> 2
print(f'負の数のシフト: {negative} >> 2 = {result}')

👇出力結果

64 // 2^0 = 64 >> 0 = 64
64 // 2^1 = 64 >> 1 = 32
64 // 2^2 = 64 >> 2 = 16
64 // 2^3 = 64 >> 3 = 8
負の数のシフト: -64 >> 2 = -16

ビット右シフトは2の累乗での切り捨て除算を高速に行えます。この例では、64を2^0から2^3で割った結果を、右シフト演算子を使って計算しています。また、負の数の右シフトの動作も確認しています。

>>に関するよくある質問

Q. ビット右シフトとは何ですか?
A. ビット右シフトは、数値の2進表現を指定したビット数だけ右にずらす操作です。左側には符号ビットが追加されます。Pythonでは >> 演算子を使用します。
Q. 右シフトと除算の関係は?
A. ビット右シフトは、2の累乗での切り捨て除算と同じ効果があります。n ビット右シフトすると、元の数を 2^n で割った商(小数点以下切り捨て)と同じ結果になります。
Q. 負の数の右シフトはどうなる?
A. 負の数の右シフトでは、左側に1が追加されます。これにより、負の数の符号が保持されます。ただし、言語や実装によって動作が異なる場合があるので注意が必要です。
Q. 右シフトの実用的な使用例は?
A. ビット右シフトは、高速な除算(2の累乗での)、ビットフラグの解析、色情報の処理(RGB値の分離など)、データ圧縮の解凍などで使用されます。

>>が学べる書籍の紹介

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

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

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

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


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

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

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

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

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

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


関連するそのほかの単語

|

ビット単位OR

種類: ビット演算子

>

左辺が右辺より大きいか判定

種類: 比較演算子

<<

ビット左シフト

種類: ビット演算子

list

変更可能な値の列

種類: シーケンス型

__len__

長さや要素数を取得

種類: 特殊メソッド