【Day12】・・というか気が付けば2週間以上たっていたからシフト演算

投稿者: | 2025年7月10日

シフト演算ってなに?

~サボり明けの私が「ズラすだけ」でスッキリ理解!~

こんにちは!
最近ちょっとおサボりしていた50代主婦の○○です。

気づけば前回のブログから日が空いてしまいました…。
でも大丈夫。大事なのは「戻ってくること」!

というわけで、今日は久しぶりにパソコンの世界のお勉強。
**「シフト演算」** というテーマにチャレンジしてみました!

## ◆ シフト演算ってなに?

シフト(shift)=「ズラす」こと。
つまり、**ビット(0と1)を左右にズラす演算**のことです。

### ビットって?

→ コンピューターが使っている、0と1の数字のことでしたね!

例えば、2進数の `1010` は、10進数で言うと「10」になります。

## ◆ 右にズラす?左にズラす?

### ◉ 左にシフト(左シフト)

ビット列を **左にズラす**と、値が **2倍になります**!

例:

“`
1010 (10) → 左に1ビットシフト → 10100(=20)
“`

→ 「末尾に0を1つつけたら、2倍になる」って感覚です♪

### ◉ 右にシフト(右シフト)

ビット列を **右にズラす**と、値が **1/2になります(小数点切り捨て)**!

例:

“`
1010(10) → 右に1ビットシフト → 0101(=5)
“`

→ 「右に1つズラす」=「半分にする」

## ◆ シフト演算の種類(ちょっとだけ専門用語)

| 名前 | 説明 |
| ——— | ————— |
| **算術シフト** | 符号(+−)を保ちながらシフト |
| **論理シフト** | 左右に0を入れてシフト |

※ 初学者はとりあえず「0や1をズラす操作」だと思えばOK!

## ◆ 実際にやってみよう!

2進数 `0011 1000`(=56)を左に1ビットシフトすると…?

“`
0011 1000 → 0111 0000(=112)
“`

→ **2倍になりました!**

逆に右に1ビットシフトすると…?

“`
0011 1000 → 0001 1100(=28)
“`

→ **半分になりました!**

## ◆ なんでそんな操作をするの?

シフト演算は、コンピューターの中で「かんたんに2倍・半分」を計算できるテクニックとして使われます。

電卓で×2や÷2を押すよりも、**ビットをズラすだけの方が速い**んです!

## ◆ 今日のまとめ

* シフト演算とは、ビット(0と1)を左右にズラす操作!
* 左にズラす=2倍
* 右にズラす=1/2(切り捨て)
* コンピューターでは処理のスピードアップに使われる!

ちょっとブランクが空いても、またこうして勉強を始められたことがうれしいです。
「10分だけでもOK」なこのスタイル、私には合ってるかも♪

次は「XOR(エクスオア)」にもチャレンジしてみようかな?

それではまた、主婦のゆるっと勉強ブログでお会いしましょう☕📘