39
1 数数数数数数 数数 数数数数数数数数 ( 数 ) 数数数数 数数数数数数 数数 数数

基本情報技術概論 ( 第2回 )

  • Upload
    katy

  • View
    48

  • Download
    5

Embed Size (px)

DESCRIPTION

数の表現方法 ・ 演算. 基本情報技術概論 ( 第2回 ). 埼玉大学 理工学研究科 堀山 貴史. 前回の復習. 単位 bit, byte n 進数 2進数 0, 1, 10, 11, 100, 101, … 8進数 0, 1, 2, … , 6, 7, 10, 11, 12, … 16 進数 0, 1, 2, … , 9, A, B, C, D, E, F, 10, … 基数の 変換 - PowerPoint PPT Presentation

Citation preview

1

数の表現方法 ・ 演算

基本情報技術概論 ( 第2回 )

埼玉大学 理工学研究科 堀山 貴史

2________________

前回の復習

単位 bit, byte

n 進数 2進数 0, 1, 10, 11, 100, 101, … 8進数 0, 1, 2, …, 6, 7, 10, 11, 12, … 16 進数 0, 1, 2, …, 9, A, B, C, D, E,

F, 10, … 基数の変換

2A . 18 (16) … 2 x 16 + 10 x 1 + 1 x 1/16 + 8 /

162 (10)

1011 . 1 (2) … 001 011 . 100 (2) = 1 3 . 4 (8)

k, M, G, T / m, μ, n

3

数値の表現方法

前回の復習 (2)

整数 符号なし整数符号付き整数 絶対値表現

1の補数2の補数

小数 固定小数点数浮動小数点数

1 0 0 1

最上位ビットを符号として使う

91

0 0 0 1

-11

-61

-71

例 )

4

小数の表現方法

固定小数点数

小数点の位置を固定 浮動小数点数に比べて、数値表現の範囲が狭い   (大きな数、小さな数が扱えない)

例) 1000000 (2) は? 0.00001 (2) は?

演算が容易 最上位ビットを符号とみて、符号付きの数も

扱える

________________

5

浮動小数点数

固定小数点数に比べて、数値表現の範囲が広い

例) 1000000 (2) は 0.1 x 2 7

0.00001 (2) は 0.1 x 2 -4

注意: 正規化が必要     仮数部の左端から0が並んでいると、     有効数字が小さくなる。これを防ぐた

め、      0.1 x 2 ○  という形にする。

符号部 指数部 仮数部

________________

小数の表現方法- 0.1 x 2 11

符号部 仮数部

指数部

6

浮動小数点数 (形式その1)

符号部 : 仮数部の符号 0:正 1:負 仮数部 : 符号を取り除いた絶対値

       正規化 0.1○○○

指数部 : 正の数も負の数も、ありえる 2の補数表現

符号部 (S) 指数部 (E) 仮数部 (M)

1 bit 7 bit 24 bit

小数の表現方法- 0.1 x 2 11

符号部 仮数部

指数部

(-1) S x 0.M x 2 E

7

浮動小数点数 (形式その2)

符号部 : 仮数部の符号 0:正 1:負 仮数部 : 符号を取り除いた絶対値

       正規化 1.○○○

指数部 : 正の数も負の数も、ありえる 指数部にバイアス (127) が加わっている

符号部 (S) 指数部 (E) 仮数部 (M)

1 bit 8 bit 23 bit

小数の表現方法- 0.1 x 2 11

符号部 仮数部

指数部

(-1) S x 1.M x 2 E-

127

バイアス 127 を加える

バイアス 127 を引く

8

IEEE 浮動小数点数 単精度 (4 バイト : 32 ビット)

倍精度 (8 バイト : 64 ビット)

形式その2を使う (倍精度のバイアスは

1023 )

符号部 指数部 仮数部

1 bit 8 bit 23 bit

符号部 指数部 仮数部

1 bit 11 bit 52 bit

小数の表現方法- 0.1 x 2 11

符号部 仮数部

指数部

float

double

9

四則演算 (+ , - , ×, ÷ )

10

1例)4 bit 符号なし整数

加算

10 進数の加算と同様に、下位の桁からの     桁上がり ( キャリー ) を足していく

  0100+ 0110

________________

001

  1111+ 0001

000

注意: オーバーフロー  演算結果が、表現できる数値の範囲より外側に  超えてしまうことがある

________________

11

11

減算

10 進数の加算と同様に、下位の桁からの     桁借り ( ボロー ) を引いていく

  1010- 0110

________________

010

  0000- 0001

111

111

注意: オーバーフロー  演算結果が、表現できる数値の範囲より外側に  超えてしまうことがある

例)4 bit 符号なし整数

12

例)

減算 (方法2)

2の補数表現を使って、加算

  0100+ 1111

101

4 - 1 = 4 + (-1)

2の補数表現では無視する

… 4… -1… 3

13

2の補数表現の加算

2の補数表現を使って、加算

  0100+ 0100

000

注意: オーバーフロー  演算結果が、表現できる数値の範囲より外側に  超えてしまうことがある

4 + 4

… 4… +4…  8?

例)

正+正=負負+負=正

14

シフト演算

論理シフト ビット列を左や右に移動させる あふれた値は捨てる 空いたところには 0 を入れる

1 1 0 1 1 1 0 1

例)

左シフト 右シフト

1 0 1 0

0 1 1 0

15

シフト演算

算術シフト 符号ビットを保持する 2の補数表現で、  2倍(左シフト)や 1 / 2倍(右シフ

ト)に対応

0 0 0 1

例)

左シフト

0 0 1 0

… 2

… 1 1 1 0 1

1 0 1 0

… - 6

… - 3

16

シフト演算

算術シフト 符号ビットを保持する 2の補数表現で、  2倍(左シフト)や 1 / 2倍(右シフ

ト)に対応例)

右シフト

0 0 1 0

0 0 0 1 … 1

… 2x

1 0 1 0

1 1 0 1 … - 3

… - 6x

17

乗除算

シフトと加減算を組み合わせて実現する

  1101x 0101

… 13… 5

   1101  0000 110100001000001 … 65

… 1101 1000011 … 671101  1111  1101    10

0101 … 5

… 2

18

用語: 誤差

オーバーフロー 演算結果が、表現できる数値の範囲より 外側に超えること

アンダーフロー 浮動小数点演算では、オーバーフローの他に  

  アンダーフローも起こりえる 演算結果が、表現できる数値の範囲より    

   細かな数になること

アンダーフロー

オーバーフロー

オーバーフロー

数値範囲0数直線

________________

________________

19

用語: 誤差

情報落ち 浮動小数点演算において、 絶対値の大きな数 と 絶対値の小さな数 の 加減

算で、絶対値の小さな数の有効桁数の一部または全部が 演算結果に反映されないことで生じる

例) 0.10100(2) x 24 – 0.10001(2) x 2-8

桁落ち 浮動小数点演算において、 値がほぼ等しい数同士の加減算で、 有効桁数が大幅に減ってしまう

例) 0.10000011 x 24

- 0.10000010 x 24 = 0.10000000 x 2-3

意味があるのはこの桁のみ

________________

________________

20

用語: 誤差

打切り誤差 演算を途中で打ち切ったことで発生する誤差

例) sin x を x – x3/3 ! で計算

( 本当は、 x – x3/3 ! + x5/5 ! – x7/7 ! + ・・・ と続く )

丸め誤差 最下位桁より小さい部分について、 丸め(四捨五入や切り上げ、切捨て)を 行うことによって生じる誤差

例 ) 10/3 = 3.333… → 3.3

________________

________________

21

文字の表現方法

文字コード   文字集合(扱う文字の集合)の   符号化方式(どのように2進数を対応させるか)を   定めたもの

22

ASC I I コード

ANS I (American National Standards Institute) で

  制定された7ビットのコード 英数字、記号、  制御コードからなる

例) A の文字コード

1 0 0 0 0

0 1

________________

23

より多くの文字を取り扱うために ...

J I S コード ISO-2022 を符号化方式とした

7ビット 1~2バイトのコード 電子メールのやりとりには、 ISO-2022-JP の

符号化方式を用いるのが主流

シフト J I S J I S コードと同じ文字集合 (8ビット 1~2

バイト) 以前の Windows や MacOS では、内部処理用のコードとして主に利用された(現在でも、ユーザはファイル保存時に使える)

________________

________________

24

より多くの文字を取り扱うために ...

EUC (EUC-JP)  : 拡張 Unix コード J I S コードと同じ文字集合 (8ビット 1~2

バイト) 主に Unix で用いられる

Unicode 世界中の言語で使う文字を

1つのコード体系に納め(ようとしてい)るコード

Window,Mac OS X, Unix 等の最近の OS で 標準的に扱える

符号化方式には、 UTF-8 や UTF-16 が用いられる

________________

________________

25

論理演算

26

論理演算

2進数の四則演算 (+ , - , ×, ÷ ) は、  0 , 1 を操作すれば実現できる

与えられた 0 , 1 (入力) から、  計算結果の 0 , 1 (出力) を得る仕組みを作ろう!

27

論理演算 真理値表回路記号 論理式

A fA  f0  11  0

f = A

f = ¬ A

NOT(否定)

AB

A B  f0 0  00 1  11 0  11 1  0

f = A + B

XOR(排他的

論理和)

A B  f0 0  00 1  11 0  11 1  1

f = A + B

f = A ∨ B

AB

fOR

(論理和)

f = A ・ B

f = A ∧ B

A B  f0 0  00 1  01 0  01 1  1

AB

fAND(論理積)

28

論理演算: NAND論理演算 真理値表回路記号 論理式

A fA  f0  11  0

f = A

f = ¬ A

NOT(否定)

f = A ・ B

f = A ∧ B

A B  f0 0  00 1  01 0  01 1  1

AB

fAND(論理積)

f = A ・ B

f = A ∧ B

A B  f0 0  10 1  11 0  11 1  0

NANDAB

29

f = A + B

f = A ∨ B

AB

論理演算: NOR論理演算 真理値表回路記号 論理式

A fA  f0  11  0

f = A

f = ¬ A

NOT(否定)

A B  f0 0  00 1  11 0  11 1  1

OR(論理和)

AB

ff = A

+ B

f = A ∨ B

A B  f0 0  10 1  01 0  01 1  0

NOR

30

31

32

論理演算: 否定 (NOT)

入力の否定 (0 , 1 を反転させる)

A f

入力 出力

A  f

0  1

1  0

真理値表 回路記号 論理式

f = A

f = ¬ A

33

論理演算: 論理積 (AND)

A と B どちらも 1 なら、 f も 1

AB

真理値表 回路記号 論理式

f = A ・ B

f = A ∧ B

A B  f

0 0  00 1  01 0  01 1  1

34

論理演算: 論理和 (OR)

A または B が 1 なら、 f も 1

AB

A B  f

0 0  00 1  11 0  11 1  1

真理値表 回路記号 論理式

f = A + B

f = A ∨ B

35

論理演算: 排他的論理和 (XOR, EOR, EXOR)

A または B 一方のみが 1 なら、 f も 1

AB

A B  f

0 0  00 1  11 0  11 1  0

真理値表 回路記号 論理式

f = A + B

36

37

38

この教材のご利用について この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を求めることなく、無償で自由にご利用いただけます。講義、自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利用ください。

非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者

の許諾を受けずに商業目的で利用することは、許可されていません。

著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著作者に帰属します。この教材、または翻訳や改変等を加えたものを公開される場合には、「本教材 (or 本資料 ) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施してください。なお、この教材に改変等を加えたものの著作権は、次ページ以降に示す著作者および改変等を加えた方に帰属します。

同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布

する場合には、頒布・再頒布の形態を問わず、このページの利用条件に準拠して無償で自由に利用できるようにしてください。

この文面は、 TOKYO

TECH OCW の利用

条件を参考にしました

39

配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/

この powerpoint ファイルの著作者 堀山 貴史  2007-2009 [email protected]

u.ac.jp 改変等を加えられた場合は、お名前等を追加してください

図の著作者 p. 26

クリップアート : Microsoft Office Online / クリップアート

その他 堀山 貴史

この教材のご利用について