SlideShare a Scribd company logo
1 of 16
Download to read offline
東北大学 工学部 機械知能・航空工学科
2018年度 クラスC3 D1 D2 D3
情報科学基礎 I
大学院情報科学研究科
鏡 慎吾
http://www.ic.is.tohoku.ac.jp/~swk/lecture/
4. 論理値と論理演算
(教科書2.1節,2.4節)
2鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
内容
• 論理演算
• 論理値 0 と 1
• 論理演算 AND, OR, NOT
• よく使う他の論理演算 NAND, NOR, XOR
• 論理ゲート回路
• ビットごと論理演算
3鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
論理値と論理演算
論理値
• 「3 は 4 より小さい」は真 (true): 数値 1 で表す
• 「カエルは哺乳動物である」は偽 (false): 数値 0 で表す
論理演算:
• 論理積 (AND):
• 論理和 (OR):
• 論理否定 (NOT):
あるいは単に
他の記法:
他の記法:
他の記法:
4鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
真理値表とゲート記号
A B A・B
0 0 0
0 1 0
1 0 0
1 1 1
A
B
A・B
A B A+B
0 0 0
0 1 1
1 0 1
1 1 1
A A
0 1
1 0
A
B
A+B A A
真理値表
ゲート記号
5鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
よく使う他の論理演算
否定論理積
(NAND)
A B A・B
0 0 1
0 1 1
1 0 1
1 1 0
否定論理和
(NOR)
A B A+B
0 0 1
0 1 0
1 0 0
1 1 0
A
B
A・B A
B
A+B
排他的論理和
(eXclusive OR)
(XOR)
A B A  B
0 0 0
0 1 1
1 0 1
1 1 0
A
B
A  B
•片方だけ 1 のときに限って1
•つまり入力が相異なるときに1
6鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
多入力AND, 多入力OR
A
B
C
A・B・C
A+B+C
A
B
C
A
B
C
A
B
C
• 論理積も論理和も,交換則 (AB = BA, A+B = B+A) と結合
則 ((AB)C = A(BC), (A+B)+C = A+(B+C)) が成り立つ.
• 入力の順序に関係なく,
•多入力ANDは入力が一つでも 0 なら 0
•多入力 OR は入力が一つでも 1 なら 1
• NAND,NOR も同様
7鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
多入力XOR
A
B
C
A
B
C
A  B  C
• X  1 = X
• X  0 = X
• A, B, C, ... と順に見ていって,入力に 1 が現れる度に出力は
反転する
• 結局,多入力 XOR は,入力のうち 1 の数が奇数なら 1に,
偶数なら 0 になる
8鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
NOTゲート の回路 (インバータ)
0 1
VDD (電源電圧)
GND (0V)
low
on
off
high high
off
on
low
1 0
CMOS技術 (Complementary MOS):
NMOS と PMOS を常に対にして使う (低消費電力)
9鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
NAND, NORゲートの回路
A
B
A・B
A
B
A+B
•AND, OR は NAND, NOR, NOT から作れる
•XOR は AND, OR, NOT から作れる
10鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
プログラミングで使う論理演算
if (x > 20 && x < 80) {
...
}
if (a < 0 || b < 0) {
...
}
if (!isalpha(c)) {
...
}
C言語では,比較演算子 (>,
>=, <, <=, ==, !=) は真のとき
整数 1 を,偽のとき整数 0 を
返す.
演算子 &&, ||, ! が,論理積,
論理和,論理否定を行う.
if や while などの条件部は,
0 を偽,0 以外を真とみなして
判定する.
11鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
ビットごと論理演算
C言語の演算子 &, |, ~,^ などは,&&, ||, ! とは異なりビットごとの
論理演算を行う
a = 0x1234; // 0001 0010 0011 0100
b = 0xcafe; // 1100 1010 1111 1110
c = a & b; // 0000 0010 0011 0100 (AND)
c = a | b; // 1101 1010 1111 1110 (OR)
c = ~a; // 1110 1101 1100 1011 (NOT)
c = a ^ b; // 1101 1000 1100 1010 (XOR)
任意のビットは
• 1 との OR を取ると 1になる; 0 との OR は元のまま不変
• 0 との AND を取ると 0 になる; 1 との AND は元のまま不変
• 1 との XOR を取ると反転する; 0 との XOR は元のまま不変
などを利用して,ビットごとの操作ができる
12鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
例題
ファミリーコンピュータ用ゲーム「ドラゴンクエストIV 導
かれし者たち」((株) エニックス, 1990年) では,敵との
戦闘中に「にげる」操作を8 回行うと,それ以降,敵へ
のすべての攻撃が強力なものとなる(会心の一撃と呼
ばれる) 現象が生じた.内部でどのような処理が行わ
れていたか推測して述べよ.
(2010年度 期末試験)
13鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
http://www.youtube.com/watch?v=_Ao1ofpI0mE
14鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
例題 解答例
ドラゴンクエストIV (エニックス) の戦闘状態を保持するメモリ
領域の一部は,以下のような構成だったと推測されている:
霧フラ
グ
? ? ? 会心フ
ラグ
「にげる」コマンドカウンタ
7 6 5 4 3 2 1 0
critical_hit_bit = 1 << 3; // 0000 1000
fog_bit = 1 << 7; // 1000 0000
status = status | critical_hit_bit; // 会心の一撃ON
status = status & ~critical_hit_bit; // 会心の一撃OFF
status = status ^ fog_bit; // 霧状態を反転
if (status & fog_bit) {
// 霧状態ならこの処理を実行
}
15鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
練習問題
1. 16ビットの値 x が与えられたとき,上位 12 ビットと下位 4 ビッ
トを入れ替えた結果を変数 y に得る処理を,シフト演算とビッ
トごと論理演算の組合せで実現せよ.(このような処理は「4
ビット右ローテート」と呼ばれる)
2. 16ビットの値が与えられたとき,下位から 7 ビット目(ただし
LSB を1 ビット目と数えることにする)の値を変数 y に得る処
理を,シフト演算とビットごと論理演算の組合せで実現せよ.
(if 文などは使わない)
16鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1)
練習問題 解答例
C言語であれば,以下のような処理で実現できる.
1.
2.
unsigned short x, y;
...
y = (x << 12) | (x >> 4);
y = (x & (1 << 6)) >> 6;

More Related Content

More from swkagami

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814swkagami
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813swkagami
 
kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812swkagami
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811swkagami
 
kagamicomput201810
kagamicomput201810kagamicomput201810
kagamicomput201810swkagami
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809swkagami
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807swkagami
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806swkagami
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805swkagami
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803swkagami
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802swkagami
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801swkagami
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714swkagami
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713swkagami
 
kagamicomput201712
kagamicomput201712kagamicomput201712
kagamicomput201712swkagami
 
kagamicomput201711
kagamicomput201711kagamicomput201711
kagamicomput201711swkagami
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710swkagami
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709swkagami
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707swkagami
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706swkagami
 

More from swkagami (20)

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
 
kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811
 
kagamicomput201810
kagamicomput201810kagamicomput201810
kagamicomput201810
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713
 
kagamicomput201712
kagamicomput201712kagamicomput201712
kagamicomput201712
 
kagamicomput201711
kagamicomput201711kagamicomput201711
kagamicomput201711
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (14)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

kagamicomput201804

  • 1. 東北大学 工学部 機械知能・航空工学科 2018年度 クラスC3 D1 D2 D3 情報科学基礎 I 大学院情報科学研究科 鏡 慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 4. 論理値と論理演算 (教科書2.1節,2.4節)
  • 2. 2鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 内容 • 論理演算 • 論理値 0 と 1 • 論理演算 AND, OR, NOT • よく使う他の論理演算 NAND, NOR, XOR • 論理ゲート回路 • ビットごと論理演算
  • 3. 3鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 論理値と論理演算 論理値 • 「3 は 4 より小さい」は真 (true): 数値 1 で表す • 「カエルは哺乳動物である」は偽 (false): 数値 0 で表す 論理演算: • 論理積 (AND): • 論理和 (OR): • 論理否定 (NOT): あるいは単に 他の記法: 他の記法: 他の記法:
  • 4. 4鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 真理値表とゲート記号 A B A・B 0 0 0 0 1 0 1 0 0 1 1 1 A B A・B A B A+B 0 0 0 0 1 1 1 0 1 1 1 1 A A 0 1 1 0 A B A+B A A 真理値表 ゲート記号
  • 5. 5鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) よく使う他の論理演算 否定論理積 (NAND) A B A・B 0 0 1 0 1 1 1 0 1 1 1 0 否定論理和 (NOR) A B A+B 0 0 1 0 1 0 1 0 0 1 1 0 A B A・B A B A+B 排他的論理和 (eXclusive OR) (XOR) A B A  B 0 0 0 0 1 1 1 0 1 1 1 0 A B A  B •片方だけ 1 のときに限って1 •つまり入力が相異なるときに1
  • 6. 6鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 多入力AND, 多入力OR A B C A・B・C A+B+C A B C A B C A B C • 論理積も論理和も,交換則 (AB = BA, A+B = B+A) と結合 則 ((AB)C = A(BC), (A+B)+C = A+(B+C)) が成り立つ. • 入力の順序に関係なく, •多入力ANDは入力が一つでも 0 なら 0 •多入力 OR は入力が一つでも 1 なら 1 • NAND,NOR も同様
  • 7. 7鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 多入力XOR A B C A B C A  B  C • X  1 = X • X  0 = X • A, B, C, ... と順に見ていって,入力に 1 が現れる度に出力は 反転する • 結局,多入力 XOR は,入力のうち 1 の数が奇数なら 1に, 偶数なら 0 になる
  • 8. 8鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) NOTゲート の回路 (インバータ) 0 1 VDD (電源電圧) GND (0V) low on off high high off on low 1 0 CMOS技術 (Complementary MOS): NMOS と PMOS を常に対にして使う (低消費電力)
  • 9. 9鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) NAND, NORゲートの回路 A B A・B A B A+B •AND, OR は NAND, NOR, NOT から作れる •XOR は AND, OR, NOT から作れる
  • 10. 10鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) プログラミングで使う論理演算 if (x > 20 && x < 80) { ... } if (a < 0 || b < 0) { ... } if (!isalpha(c)) { ... } C言語では,比較演算子 (>, >=, <, <=, ==, !=) は真のとき 整数 1 を,偽のとき整数 0 を 返す. 演算子 &&, ||, ! が,論理積, 論理和,論理否定を行う. if や while などの条件部は, 0 を偽,0 以外を真とみなして 判定する.
  • 11. 11鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) ビットごと論理演算 C言語の演算子 &, |, ~,^ などは,&&, ||, ! とは異なりビットごとの 論理演算を行う a = 0x1234; // 0001 0010 0011 0100 b = 0xcafe; // 1100 1010 1111 1110 c = a & b; // 0000 0010 0011 0100 (AND) c = a | b; // 1101 1010 1111 1110 (OR) c = ~a; // 1110 1101 1100 1011 (NOT) c = a ^ b; // 1101 1000 1100 1010 (XOR) 任意のビットは • 1 との OR を取ると 1になる; 0 との OR は元のまま不変 • 0 との AND を取ると 0 になる; 1 との AND は元のまま不変 • 1 との XOR を取ると反転する; 0 との XOR は元のまま不変 などを利用して,ビットごとの操作ができる
  • 12. 12鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 例題 ファミリーコンピュータ用ゲーム「ドラゴンクエストIV 導 かれし者たち」((株) エニックス, 1990年) では,敵との 戦闘中に「にげる」操作を8 回行うと,それ以降,敵へ のすべての攻撃が強力なものとなる(会心の一撃と呼 ばれる) 現象が生じた.内部でどのような処理が行わ れていたか推測して述べよ. (2010年度 期末試験)
  • 13. 13鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) http://www.youtube.com/watch?v=_Ao1ofpI0mE
  • 14. 14鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 例題 解答例 ドラゴンクエストIV (エニックス) の戦闘状態を保持するメモリ 領域の一部は,以下のような構成だったと推測されている: 霧フラ グ ? ? ? 会心フ ラグ 「にげる」コマンドカウンタ 7 6 5 4 3 2 1 0 critical_hit_bit = 1 << 3; // 0000 1000 fog_bit = 1 << 7; // 1000 0000 status = status | critical_hit_bit; // 会心の一撃ON status = status & ~critical_hit_bit; // 会心の一撃OFF status = status ^ fog_bit; // 霧状態を反転 if (status & fog_bit) { // 霧状態ならこの処理を実行 }
  • 15. 15鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 練習問題 1. 16ビットの値 x が与えられたとき,上位 12 ビットと下位 4 ビッ トを入れ替えた結果を変数 y に得る処理を,シフト演算とビッ トごと論理演算の組合せで実現せよ.(このような処理は「4 ビット右ローテート」と呼ばれる) 2. 16ビットの値が与えられたとき,下位から 7 ビット目(ただし LSB を1 ビット目と数えることにする)の値を変数 y に得る処 理を,シフト演算とビットごと論理演算の組合せで実現せよ. (if 文などは使わない)
  • 16. 16鏡 慎吾 (東北大学): 情報科学基礎I 2018 (1) 練習問題 解答例 C言語であれば,以下のような処理で実現できる. 1. 2. unsigned short x, y; ... y = (x << 12) | (x >> 4); y = (x & (1 << 6)) >> 6;