コンピュータサイエンス入門覚え書き①

参考文献:電子学園出版局『情報処理基礎講座コンピュータシステムの基礎』

コンピュータの概要
ハードウェアの五大装置はこれだ!

①入力装置
プログラムやデータをコンピュータにあった形に変換して、記憶装置に送り込む。

②記憶装置
プログラムやデータを記憶する。メインメモリともいう。

③演算装置
メインメモリからデータを取り出して、計算、判断を行う。

④制御装置
ハードウェアの各装置が統合的に働くようにコントロールをする。

⑤出力装置
メインメモリに記憶されているプログラムやデータを文字や数字にして印刷する。

⑥補助記憶装置
メインメモリに記憶しきれないデータを記憶する。USBメモリとか。

ビット
コンピュータの情報表現の最小単位である0と1の組み合わせのこと。

バイト
1ビットだとどうにもならないので、8ビット(ファミコン1個分)を1バイトとしてまとめる。
1バイトは2の8乗=256通りの表現ができる。

KB(キロバイト):バイトの千倍。2進法の関係で1KB=1024B
MB(メガバイト):バイトの百万倍。1MB=1024KB
GB(ギガバイト):バイトの十億倍。1GB=1024MB
TB(テラバイト):バイトの一兆倍。1TB=1024GB
PB(ペタバイト):バイトの千兆倍。1PB=1024TB
EB(エクサバイト):バイトの百京倍。1EB=1024PB数と基数変換

コンピュータの動作速度
ms(ミリ秒):1秒の1000分の1の速さ。
μs(マイクロ秒):1ミリ秒の1000分の1の速さ。
ns(ナノ秒):1マイクロ秒の1000分の1の速さ。
ps(ピコ秒):1ナノ秒の1000分の1の速さ。

基数
10進法の10、2進法の2といった数字のこと。
2進法を10進法になおしたりすることを基数変換という。

10進数
10でケタが増える。

2進数
2でケタが増える。つまり2の時点で2ケタになる(2=10)。

16進数
16でケタが増える。9の次は10ではなく、AになりBCDFと6つのアルファベットを使って0~15まで16回頑張る。Fの次から10(=16)になり、19、1A 、1B、1C・・・とまた6回頑張る。
A=10
B=11
C=12
D=13
E=14
F=15
10=16
11=17
12=18
13=19
14=20
15=21
16=22
17=23
18=24
19=25
1A=26
1B=27
1C=28
1D=29
1E=30
1F=31
20=32

例えば0.FE×2の計算は・・・
各ケタをばらして
0.0E:0.0⑭×2=0.0㉘ ※㉘=16+12 よって0.1⑫=0.1C
0.F:0.⑮×2=0.㉚ ※㉚=16+14 よって1.⑭=1.E
0.1C+1.E=1.FC

2進数→10進数のやり方
①整数の場合
11101(2進数)
各ケタに2xをかける。指数は1ケタめから0乗、1乗、2乗・・・とする。そしてすべての数を足す。
1×20=1×1=1
0×21=0×2=0
1×22=1×4=4
1×23=1×8=8
1×24=1×16=16
よって1+0+4+8+16=29(10進数)

②小数の場合
0.11(2進数)
各ケタに2xをかけるが、小数のケタにかける指数は小数第一位から-1乗、-2乗・・・とする。そしてすべての数を足す。
0×20=0×1=0
1×2-1=1×(1÷2)=0.5
1×2-2=1×(1÷4)=0.25
よって0.5+0.25=0.75(10進数)

10進数→2進数のやり方
①整数だったり、ケタが小さい場合
29(10進数)
その数字を筆算を使って商が0か1になるまでどんどん2で割っていき、商とそれぞれのあまりを下から上に並べていく。
29÷2=14 あまり1
14÷2=7 あまり0
7÷2=3 あまり1
3÷2=1 あまり1
よって11101(2進数)

②ケタがでかい場合
1500(10進数)
xで最も1500に近い数(ただしオーバーしない)を調べる。
それは210の1024なので1500から1024を引き210のケタの数を1とする。
先ほどの計算で出た差476を今度は29=512と比較して、引けなかったら0、引けたら1とする(476-512はできないので0)。
次に476を28=256で引いて・・・を20=1のケタまで繰り返す(つまり引き算を11回戦やる)。
10=1024・・・1500-1024=476○→1
9=512・・・476-512=×→0
8=256・・・476-256=220○→1
7=128・・・220-128=92○→1
6=64・・・92-64=28○→1
5=32・・・28-32×→0
4=16・・・28-16=12○→1
3=8・・・12-8=4○→1
2=4・・・4-4=0○→1
1=2・・・0-2=×→0
0=1・・・0-1=×→0
よって10111011100(2進数)

16進数→10進数のやり方
①整数の場合
E3(16進数)
今度は2xではなく16xをかけていく。
Eは14番目の数なので・・・
3×160=3×1=3
14×161=14×16=224
224+3=227(10進数)

②小数の場合
0.FE(16進数)
各ケタに16xをかけるが、小数のケタにかける指数は小数第一位から-1乗、-2乗・・・とする。そしてすべての数を足す。
0×160=0×1=0
15×16-1=15×(1÷16)=15×0.0625=0.9375
14×16-2=14×(1÷256)=14×0.00390625=0.0546875
よって0.9375+0.0546875=0.9921875(10進数)

10進数→16進数のやり方
①整数の場合
572(10進数)
16で割っていく(16で割れなくなるまで)。そして最後の商とあまりを並べる。
572÷16=35 あまり12(※12は16進数でC)
35÷16=2 あまり3
よって23C(16進数)

②小数の場合
0.6(10進数)
小数部分のケタを16倍する。
そこで出た答え(積)の小数部分を再び16倍していき、小数部分が0になるまでこれを繰り返す。
最後に0になるまで出した積の整数部分を、16進法の小数部分として並べる。
0.6×16=9.6
9.6の小数部分0.6に再び16をかける
0.6×16=9.6
・・・エンドレスなので
0.999(16進数)
※ちなみに10進数の小数のほとんどは16進数に変換すると循環小数になる。

2進数→16進数のやり方
1011011.101(2進数)
小数点を基準に4ケタずつ区切り、各4ケタを1ケタの16進数に変える。
4ケタに達しない場合は0でごまかす。
0101→5
1011→11→B
.
1010→10→A
よって
5B.A(16進数)

16進数→2進数のやり方
FC8(16進数)
16進数のそれぞれのケタを2進数に変える。
F→15→1111
C→12→1100
8→1000
111111001000(2進数)

2進数→8進数のやり方
11001.11(2進数)
小数点を基準に3ケタずつ区切り、各3ケタを8進数に変える。
011→3
001→1
.
110→6
31.6(8進数)

8進数→2進数のやり方
52.3(8進数)
8進数のそれぞれのケタを2進数に変える。
5→101
2→010
.
3→011
101010.011(2進数)

とどのつまり、コンピュータは基本0と1の2通りしか分からないので、10のように2の階乗の数で作れない数で繰り上がる基数を変換するのはなかなか面倒くさいことが分かる。
逆に2の階乗で繰り上がる2進数、8進数、16進数での変換は割と簡単。
Calendar
<< May 2020 >>
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
31
search this site.
tags
archives
recent comment
recent trackback
others
にほんブログ村 科学ブログへ にほんブログ村 科学ブログ 恐竜へ カウンター
admin
  • 管理者ページ
  • 記事を書く
  • ログアウト