Coconote
AI notes
AI voice & video notes
Try for free
🔢
シフト演算の基礎と応用
Feb 27, 2025
シフト演算の基礎理論
概要
第4回基礎理論コース
前回は二進数の足し算引き算を学習
今回は掛け算割り算に関するシフト演算を学ぶ
シフト演算とは
シフト演算はビット列を左右にずらす操作
例:実心数73.6を10倍、1/10倍する場合
10倍:736
1/10倍:7.36
基本数は10進数の場合は10、2進数の場合は2
左にずらすと2倍、右にずらすと1/2倍
シフトの公式
左にn個ずれると値は2^n倍
右にn個ずれると値は2^-n倍
シフト演算の種類
1. 論理シフト
符号を考慮せずにシフト操作
左シフト(掛け算)
例:8ビットで00101010(42)を2ビット左シフト
42を4倍して168
結果:10101000(168)
右シフト(割り算)
例:01001000(72)を2ビット右シフト
72を4で割って18
結果:00010010(18)
オーバーフローの概念
論理シフトの場合、1がはみ出たらオーバーフロー
8ビットの範囲を超えた場合、正しい値が表現できない
2. 算術シフト
符号を考慮してシフト操作
左シフト
符号ビットを無視し、残りのビットをシフト
例:11101000(-24)を左に2ビットシフト
結果:符号ビット固定でオーバーフローを考慮
右シフト
符号ビットを詰める
例:-24を右に2ビットシフト
結果:-6
結論
論理シフトと算術シフトの違い
論理シフトは空白スペースに0を詰め、はみ出た部分はオーバーフロー
算術シフトは符号ビットを詰め、異なる数値がはみ出た場合にオーバーフロー
演算方法の特徴
論理シフト左:
空きに0を詰める、1がはみ出るとオーバーフロー
算術シフト左:
同様だが、異なる数値のはみ出しに注意
論理シフト右:
空きに0、はみ出た部分は余り
算術シフト右:
空きに符号ビット、はみ出た部分は余り
参考
2のn乗以外の数値の計算方法
例:7倍の計 算
4 + 2 + 1で分配法則を使用
まとめ
本日の講義は以上
今後の学習のためチャンネル登録を推奨
試験合格に向けて共に勉強を進めよう
📄
Full transcript