狠狠撸

狠狠撸Share a Scribd company logo
計算機理論入門 6

      2012 年度後期
        垂水共之
tarumi@ems.okayama-u.ac.jp
          論理演算
関係式と論理式
? 関係式
 – 2 つの「物」の等値関係、大小関係
 – 結果は「真 (true) 」「偽 (false) 」の 2 値
 – true を1 , false を0で表す


? 論理式
 – 論理値の演算
    ? and, or, not
    ? xor
関係式
? 関係式

 – 等値関係
    ? 2 つの物が等しいか否か
        – a=b
           ? a == b, a = b
        – a≠b
           ? a <> b, a != b
 – 大小関係
    ? a<b
    ? a≦b
        – a <= b
   ? a≧b
        – a => b, a>=b
   ? a>b
論理式
? not 演算(論理否定)            a       not a            a       not a
                          1        0               真        偽
 – 真 (1) 、偽 (0) の反転       0         1              偽        真

                      a       b           a or b       a           b   a or b
? or 演算(論理和)          1       1             1          真           真     真
 – または                1       0             1          真           偽     真
                      0       1             1          偽           真     真
                      0       0             0          偽           偽     偽


? xor 演算(排他的論理和)
 – いずれか一方
                      a       b       a xor b          a           b   a xor b
                      1       1             0          真           真     偽
                      1       0             1          真           偽     真
                      0       1             1          偽           真     真
                      0       0             0          偽           偽     偽
論理否定
? not 演算(論理否定)         a   not a   a   not a
                       1    0      真    偽
 – 真 (1) 、偽 (0) の反転    0     1     偽    真
論理和
? or 演算(論理和)   a   b   a or b   a   b   a or b
 – または         1   1     1      真   真    真
               1   0     1      真   偽    真
               0   1     1      偽   真    真
               0   0     0      偽   偽    偽
排他的論理和
? xor 演算(排他的論理和) eXclusive OR
  – いずれか一方
                 a    b   a xor b   a   b   a xor b
                 1    1     0       真   真     偽
                 1    0     1       真   偽     真
                 0    1     1       偽   真     真
                 0    0     0       偽   偽     偽
論理積
? and 演算(論理積)
 – かつ
                a    b   a and b   a   b   a and b
                1    1     1       真   真     真
                1    0     0       真   偽     偽
                0    1     0       偽   真     偽
                0    0     0       偽   偽     偽
数学记号
? a, b が 0 、または 1の時

                                         a or (not
     a    b    a≧b     a     b   not b
                                            b)
     1    1     1      1     1    0          1
     1    0     1      1     0    1          1
     0    1     0      0     1    0          0
     0    0     1      0     0    1          1


? a と b はどちらも 0 か 1 の値を取るものとする。
  – 条件「 a<b 」と同値になるのは
     ? 「 a and (not b) 」「 a or (not b) 」「 a xor (not b) 」のどれか
       ?
  – 条件「 a ≦ b 」と同値になるのは?
  – 条件「 a = b 」と同値になるのは?
bit 演算
? 論理演算は 2 進数 1 桁( 1bit )での演算

? 「語」どうしの論理演算は、 bit 毎の論理演算を行う
  – 例えば 1w=8bits の場合
         a     a7 a6 a5 a4 a3 a2 a1 a0

         b     b7 b6 b5 b4 b3 b2 b1 b0

       c=a?b   c7 c6 c5 c4 c3 c2 c1 c0


                ci = ai ? bi (i=0,1,2, ??? ,7)
練習
? a=1001, b=0101 のとき、次の結果を求めよ。

  – (not a) and b

  – (not a) xor b
? 1 の補数  bit 毎の 0,1 を反転
  – not a
? mask 演算
  – 特定のビットを特定の値に変更
     ? 0へ変更 a a7 a6 a5 a4 a3 a2 a1 a0

                    b    1   1   1   1   0   0   0   0

                  a and b a7 a6 a5 a4 0      0   0   0

            – b を「マスクパターン」という


     ? 1へ変更するには?
     ? 特定の bit だけ 0,1 を反転させるには?
flag (旗)ビット
? 旗を立てる : 1 にする
? 旗を降ろす : 0 にする



? 色の三原色   RGB
                  値   R   G   B   色

                  0   0   0   0   黒

                  1   0   0   1   青

                  2   0   1   0   緑

                  3   0   1   1   水色

                  4   1   0   0   赤

                  5   1   0   1   紫

                  6   1   1   0   黄

                  7   1   1   1   白

More Related Content

计算机理论入门06

  • 1. 計算機理論入門 6 2012 年度後期 垂水共之 tarumi@ems.okayama-u.ac.jp 論理演算
  • 2. 関係式と論理式 ? 関係式 – 2 つの「物」の等値関係、大小関係 – 結果は「真 (true) 」「偽 (false) 」の 2 値 – true を1 , false を0で表す ? 論理式 – 論理値の演算 ? and, or, not ? xor
  • 3. 関係式 ? 関係式 – 等値関係 ? 2 つの物が等しいか否か – a=b ? a == b, a = b – a≠b ? a <> b, a != b – 大小関係 ? a<b ? a≦b – a <= b ? a≧b – a => b, a>=b ? a>b
  • 4. 論理式 ? not 演算(論理否定) a not a a not a 1 0 真 偽 – 真 (1) 、偽 (0) の反転 0 1 偽 真 a b a or b a b a or b ? or 演算(論理和) 1 1 1 真 真 真 – または 1 0 1 真 偽 真 0 1 1 偽 真 真 0 0 0 偽 偽 偽 ? xor 演算(排他的論理和) – いずれか一方 a b a xor b a b a xor b 1 1 0 真 真 偽 1 0 1 真 偽 真 0 1 1 偽 真 真 0 0 0 偽 偽 偽
  • 5. 論理否定 ? not 演算(論理否定) a not a a not a 1 0 真 偽 – 真 (1) 、偽 (0) の反転 0 1 偽 真
  • 6. 論理和 ? or 演算(論理和) a b a or b a b a or b – または 1 1 1 真 真 真 1 0 1 真 偽 真 0 1 1 偽 真 真 0 0 0 偽 偽 偽
  • 7. 排他的論理和 ? xor 演算(排他的論理和) eXclusive OR – いずれか一方 a b a xor b a b a xor b 1 1 0 真 真 偽 1 0 1 真 偽 真 0 1 1 偽 真 真 0 0 0 偽 偽 偽
  • 8. 論理積 ? and 演算(論理積) – かつ a b a and b a b a and b 1 1 1 真 真 真 1 0 0 真 偽 偽 0 1 0 偽 真 偽 0 0 0 偽 偽 偽
  • 10. ? a, b が 0 、または 1の時 a or (not a b a≧b a b not b b) 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 ? a と b はどちらも 0 か 1 の値を取るものとする。 – 条件「 a<b 」と同値になるのは ? 「 a and (not b) 」「 a or (not b) 」「 a xor (not b) 」のどれか ? – 条件「 a ≦ b 」と同値になるのは? – 条件「 a = b 」と同値になるのは?
  • 11. bit 演算 ? 論理演算は 2 進数 1 桁( 1bit )での演算 ? 「語」どうしの論理演算は、 bit 毎の論理演算を行う – 例えば 1w=8bits の場合 a a7 a6 a5 a4 a3 a2 a1 a0 b b7 b6 b5 b4 b3 b2 b1 b0 c=a?b c7 c6 c5 c4 c3 c2 c1 c0 ci = ai ? bi (i=0,1,2, ??? ,7)
  • 12. 練習 ? a=1001, b=0101 のとき、次の結果を求めよ。 – (not a) and b – (not a) xor b
  • 13. ? 1 の補数  bit 毎の 0,1 を反転 – not a ? mask 演算 – 特定のビットを特定の値に変更 ? 0へ変更 a a7 a6 a5 a4 a3 a2 a1 a0 b 1 1 1 1 0 0 0 0 a and b a7 a6 a5 a4 0 0 0 0 – b を「マスクパターン」という ? 1へ変更するには? ? 特定の bit だけ 0,1 を反転させるには?
  • 14. flag (旗)ビット ? 旗を立てる : 1 にする ? 旗を降ろす : 0 にする ? 色の三原色   RGB 値 R G B 色 0 0 0 0 黒 1 0 0 1 青 2 0 1 0 緑 3 0 1 1 水色 4 1 0 0 赤 5 1 0 1 紫 6 1 1 0 黄 7 1 1 1 白