補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、1000-253=747 110(2進数)の2の補数は、2進数の1000-110=10 bn-1-x b-1の補数 253(10進数)の9の補数は、1000-253-1=746 110(2進数)の1の補数は、1000-110-1=001 問題 以下を求めよ。 4651の10の補数 b) 4651の9の補数 c) 110101(2進数)の2の補数 d) 110101(2進数)の1の補数
解答 1000000 - 110101 --------- 001011 問題 4651の10の補数 b) 4651の9の補数 問題 解答 4651の10の補数 b) 4651の9の補数 c) 110101(2進数)の2の補数 d) 110101(2進数)の1の補数 10000-4651=5349 b) 5349-1 = 5348 c) 右の計算 001011 d) 001011-1 = 001010 これは元の 110101の 反転になっている。 1000000 - 110101 --------- 001011
補数 その2 ビット反転とは、 問題よりわかるように、 1と0の入れ替え 1の補数: ビット反転になっている。 補数 その2 ビット反転とは、 1と0の入れ替え 問題よりわかるように、 1の補数: ビット反転になっている。 2の補数: 1の補数に1を加える。 2n-1-x 2n-1は1がn個並んでいる。 n=4の時、24-1=1111 これからxを引くと、 反転したことになる。
引き算をコンピュータで実行するには。 方法1 符号ビットを用意する。 方法2 補数(ほすう)を使う。 bの補数 n:桁数、b:基数 bn-x 方法1 符号ビットを用意する。 方法2 補数(ほすう)を使う。 bの補数 n:桁数、b:基数 bn-x 2の補数 ビットを反転して、1加える。 110(2進数)の2の補数は、10 もしビット数が3つだとすると、 1000-110 = 010 2の補数をとることが、マイナスに相当する。 a-bの代わりに、bの補数をaに加える。 符号ビットがなくても表現できる。 問題 11100-111(2進数)を、 a) 直接、筆算をして求めよ。 b) 111の「2の補数」を求めて11100に加えよ。
解答 11100 - 111 ----- 00101 00111のビット反転は11000 11100 これに1を加えると11001 問題 11100-111(2進数)を、 a) 直接、筆算をして求めよ。 b) 111の「2の補数」を求めて11100に加えよ。 a) 11100 - 111 ----- 00101 00111のビット反転は11000 これに1を加えると11001 これが00111の2の補数。 11100に加える。 5ビットだとすると、00101 b) 11100 +11001 ----- 100101
ビット binary digitの略。2進数の桁数。 binary=2進数の digit=桁 1ビット(2進数1桁)で表せる数は、0と1の2個 問1 次のビットで表せる数を全て書け。何個あるか。 a) 2ビット b) 3ビット c) 4ビット 問2 8ビットで何個の数を表せるか。 理由も説明せよ。
バイト 8ビットをまとめて1バイト(byte)と呼ぶ。 現在のコンピュータの多くは32ビット または64ビットである。 (2進数32桁または64桁で数を表す。)
論理演算
論理回路 基本回路 A A f A f f B B OR NOT AND 論理和 論理積 否定 A B f 0 0 0 1 1 0 1 1 論理和 論理積 否定 A B f 0 0 0 1 1 0 1 1 問題1 上記3つの回路において、A, Bが 1(真)、0(偽)の値をとる時のfの値を表にせよ。 (真理値表と言う。) 問題2 次の論理式に対応する論理回路を、 3つの基本回路を使って書け。真理値表も書け。 a) b) c)
補足:論理和と論理積 A B A B A ここも含むことに注意。 日常会話では、 「りんごまたはみかん」は片方だけ。 「Coffee or tea?」と聞かれたら片方を選ぶことを 期待されている。 論理学では、「または」は両方の場合を含む。
問題1の解答 AND NOT OR f A B f f A B 0 0 0 1 1 0 1 1 A 0 0 0 1 1 0 1 1 1 1 1 1 1 1
問題2の解答 NAND NOR A B f f A B 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 XOR 1 XOR A B 0 0 0 1 1 0 1 1 1 1 1 1 1
論理回路 NOR, NAND, XORは次のような回路記号を 使うことが多い。 f A A A f f B B B NOR XOR exclusive OR AとBが違う時のみ 真になる。 NAND
半加算回路 A, Bはそれぞれ0または1をとるとする。 A+Bの加算結果S(1ビット)と桁上がりCを得る 回路を作りたい。 問題2 問題1の結果を使って、論理回路で書け。 10進数の加算の例 5 + 9 ---- 14 1が桁上がり 4が加算結果(1桁) 桁上がりとは。 10進数の場合、
半加算回路の解答 A B S C 0 0 0 1 1 0 1 1 1 1 S A A C B B AND XOR exclusive OR