1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プログラミング初学者メモ(2) コンピュータの回路

Posted at

#この記事について
プログラミング学習の基礎づくりのため、基本情報技術者の参考書で学習したことを記録しています。
今回はコンピュータの回路についてまとめました。
2,3,4章では、演算結果が1になる入力を縦にペアができるように記述しています。

##1.目次
1.目次
2.論理演算
3.論理回路
4.加算器
5.ビット操作

##2.論理演算
論理演算とは、1を真(True)、0を偽(False)とみなして行う演算。ベン図を用いると考えやすい。
AとB、二つの条件があると仮定して、基本的なものを以下に示す。

###論理積(AND)
「AかつB」の場合を示す。
A:1
B:1

###論理和(OR)
「AまたはB」の場合を示す。
A:0,1,1
B:1,0,1

###否定(NOT)
「Aではない」の場合を示す。
A:0,0
B:0,1

##3.論理回路
論理演算を行う回路。

###基本回路
上述の3種類の論理演算それぞれを行う回路。

###否定論理積(NAND)
ANDとNOTを組み合わせた回路。ANDと逆の出力をする。
A:0,0,1
B:0,1,0

###否定論理和(NOR)
ORとNOTを組み合わせた回路。ORと逆の出力をする。
A:0
B:0

###排他的論理和(EORまたはXOR)
AとBのうち、片方だけの場合に演算結果が1となる回路。
A:0,1
B:1,0

##4.加算器
2進数の加算を行う回路を加算器という。論理回路を利用する。
###半加算器
下位からのくり上がりを考慮しない加算器。1桁目の計算で用いられる。
2桁目を出力C、1桁目を出力Sとする。

出力C
A:1
B:1
→ANDと同じ

出力S
A:0,1
B:1,0
→EORと同じ

したがって、半加算器はANDとEORを組み合わせた回路と言える。

###全加算器
下位の桁からのくり上がりも考慮した加算器。2桁目以降の計算で用いられる。
入力として、A,Bに下位からのくり上がりC'を加えて考える。
そうすると、

A+Bをする半加算器(出力をC1,S1とする)
S1+C'をする半加算器(出力をC2,S2とする)

C1とC2どちらかでしかくり上がりは起きないので、
C1 OR C2 とする(出力をC3とする)。

演算結果としては、C3,S2 でわかる。

このように、全加算器は半加算器2つとORで構成される。

##5.ビット操作
引き算をするために2の補数を作ったり、浮動小数店を扱うためにビットを取り出したりする際に
ビット操作が必要になる。これは、論理演算が利用できる。

###ビットの反転
排他的論理和(EORまたはXOR)を用いる。
反転させたいビット列をA = 00000011 とする。

1.反転させたい位置に1を入れたビット列A'(マスクパターンという)を用意する。
A' = 11111111

2.A EOR A'をとる
A00000011
A' 11111111

AとA'どちらかだけが1の時に、1を出力するので
演算結果は
11111100
となる。

###ビットを取り出す
ビットを取り出す場合は、論理積(AND)を利用する。
対象となるビット列をB = 01101011 とする。

1.取り出したい位置に1を入れたビット列B'をマスクパターンとして用意する。
下4桁を取り出すと仮定して、B' = 00001111 とする。

2.B AND B' をとる
B 01101011
B'00001111

BとB'どちらも1の時に、1を出力するので、
演算結果は
00001011となり、指定したビットを取り出すことができる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?