5月17日(水)1コマ目
今日、やったこと
ビットシフト
今日のホワイトボード
単純な左シフト、右シフトの練習問題をやってもらいました。
問1
”符号なし”なので、右シフトは論理シフト(無条件に0を代入)です。
![]() |
図 問1 |
問2
”符号あり”なので、右シフトは算術シフト(符号ビットと同じ値を代入)です。
![]() |
図 問2 |
問3
問題は一見訳がわからんようなかんじですが、要は
①16進数のABCDを16ビットの2進数へ
②右シフト
③16進数へ
です。
![]() |
図 問3 |
左シフトは掛け算
10進数で考えるとわかりやすいです。
![]() |
図 10進数で左シフト |
2進数でも理屈は同じです。
![]() |
図 2進数で左シフト |
右シフトは割り算
10進数で考えるとわかりやすいです。
厳密にいうと、右シフトすると割り算の整数部になります。
![]() |
図 10進数で右シフト |
2進数でも同じです。
![]() |
図 符号なし2進数で右シフト(論理シフト) |
![]() |
図 符号あり2進数で右シフト(算術シフト) |
x2n以外の掛け算
x3やx5のような2nではない場合は、分解してx2nにします。
![]() |
図 x2n以外の掛け算 |
コンピュータの四則演算は
コンピュータには演算用回路は加算器しかありません。
加算器とビットシフトで四則演算をしています。
![]() |
図 コンピュータの四則演算 |
次回は
ビットシフトのテストをします。