基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史

Slides:



Advertisements
Similar presentations
2009/11/10 10 進数と r 進数を相互に変換できる コンピュータのための数を表現できる 2進数の補数を扱える コンピュータにおける負の数の表現を説明で きる コンピュータでの演算方法を説明できる 文字や記号の表現方法を示せる 第7回 今日の目標 § 2.2 数の表現と文字コード.
Advertisements

平成 27 年 10 月 21 日. 【応用課題 2-1 】 次のビット列は、ある 10 進数を 8 ビット固定小数点表示で表した時の ものです。ただし、小数点の位置は 3 ビット目と 4 ビット目の間としてお り、負数は2の補数で表しています。このとき、元の 10 進数を求めてく ださい。
7章 情報の表現と基礎理論. 数の表現(書き方) 「数」と「数の書き方」をわけて考える 「数の書き方」と,「数そのものの性質」は別のもの 例:13 は素数・・・”13”という書き方とは無関係 ここでは書き方(表現方法)について考える 567.
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
第1節 コンピュータにおける 情報のあらわし方
10進数 Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 例: 3271 = (3×103) + (2×102) + (7×101) + (1×100) 8進数 Digits: 0, 1, 2, 3, 4, 5, 6, 7 例: 3271 = (3×83) + (2×82)
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
『基礎理論』 (C)Copyright, Toshiomi KOBAYASHI,
基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第7回 データの基本型 情報・知能工学系 山本一公
第5回 ディジタル回路内の数値表現 瀬戸 ディジタル回路内部で,数を表現する方法(2進数)を学ぶ 10進数⇔2進数⇔16進数の変換ができる
有効数字 有効数字の利用を考える.
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータ・リテラシ b 第12回 簡単な画像処理.
プログラミング言語論 プログラミング言語論 プログラミング言語論 演習1 解答と解説 演習1解答と解説 1 1.
2進数・16進数.
補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、 =747
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第3回) 埼玉大学 理工学研究科 堀山 貴史
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
第6回 よく使われる組合せ回路 瀬戸 重要な組合せ回路を理解し、設計できるようにする 7セグディスプレイ用デコーダ 加算回路・減算回路
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
第4回 コンピューティングの要素と構成 平成22年5月10日(月)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第3章 演算装置.
すべてのレポートの提出期限 1月22日 火曜日 これ以降は特殊な理由が無い限り レポートを受け取りません!
文字エンコーディング 2010年7月.
計算機構成 第2回 ALUと組み合わせ回路の記述
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Ibaraki Univ. Dept of Electrical & Electronic Eng.
9. 演算回路 五島 正裕.
コンピュータアーキテクチャ 第 7 回.
コンピュータアーキテクチャ 第 7 回.
浮動小数点型変数で遊ぼっ!              花子.
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
情報処理Ⅱ 第2回:2003年10月14日(火).
プログラミング演習I 2004年5月19日(第5回) 理学部数学科・木村巌.
基本情報技術概論I (第4回) 埼玉大学 理工学研究科 堀山 貴史
ディジタル回路 9. 演算回路 五島 正裕.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
データの表現 2進数 0と1を使う。 基数(基準になる数)が2. 101(2) かっこで2進数と示すことがある。
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
情報科学 第6回 数値解析(1).
Ibaraki Univ. Dept of Electrical & Electronic Eng.
9. 演算回路 五島 正裕.
ca-9. 数の扱い (コンピュータアーキテクチャとプロセッサ)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング演習I 数値計算における計算精度と誤差
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報処理Ⅱ 第2回 2004年10月12日(火).
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
香川大学創造工学部 富永浩之 情報数学1 第3-3章 多進法での四則演算 香川大学創造工学部 富永浩之
Presentation transcript:

基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史 2009/10/14 基本情報技術概論 (第2回) 数の表現方法 ・ 演算 埼玉大学 理工学研究科 堀山 貴史 2008/01/23

前回の復習 単位 bit, byte n 進数 k, M, G, T / m, μ, 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, … 基数の変換 数値の表現方法 k, M, G, T / m, μ, n … 続きを、今回やります (前回の資料参照)

コンピュータ内部での数値の表現方法 整数 符号なし整数 符号付き整数 絶対値表現 1の補数 2の補数 小数 固定小数点数 浮動小数点数

小数の表現方法 固定小数点数 小数点の位置を固定 浮動小数点数に比べて、数値表現の範囲が狭い (大きな数、小さな数が扱えない) ________________ 固定小数点数 小数点の位置を固定 浮動小数点数に比べて、数値表現の範囲が狭い    (大きな数、小さな数が扱えない) 例) 1000000 (2) は? 0.00001 (2) は? 演算が容易 最上位ビットを符号とみて、符号付きの数も扱える

小数の表現方法 浮動小数点数 + 0.1 x 2 11 固定小数点数に比べて、数値表現の範囲が広い 指数部 + 0.1 x 2 11 ________________ 浮動小数点数 固定小数点数に比べて、数値表現の範囲が広い 例) 1000000 (2) は 0.1 x 2 7 0.00001 (2) は 0.1 x 2 -4 注意: 正規化が必要      仮数部の左端から0が並んでいると、      有効数字が小さくなる。これを防ぐため、      0.1 x 2 ○ という形にする。 符号部 仮数部 符号部 指数部 仮数部

浮動小数点数 (形式その1) + 0.1 x 2 11 符号部 : 仮数部の符号 0:正 1:負 参考: 小数の表現方法 指数部 + 0.1 x 2 11 浮動小数点数 (形式その1) 符号部 : 仮数部の符号 0:正 1:負 仮数部 : 符号を取り除いた絶対値        正規化 0.1○○○ 指数部 : 正の数も負の数も、ありえる 2の補数表現 符号部 仮数部 符号部(S) 指数部(E) 仮数部(M) 1 bit 7 bit 24 bit (-1) S x 0.M x 2 E

浮動小数点数 (形式その2) + 0.1 x 2 11 符号部 : 仮数部の符号 0:正 1:負 参考: 小数の表現方法 指数部 + 0.1 x 2 11 浮動小数点数 (形式その2) 符号部 : 仮数部の符号 0:正 1:負 仮数部 : 符号を取り除いた絶対値        正規化 1.○○○ 指数部 : 正の数も負の数も、ありえる 指数部にバイアス (127) が加わっている 符号部 仮数部 符号部(S) 指数部(E) 仮数部(M) 1 bit 8 bit 23 bit バイアス127を 加える バイアス127を 引く (-1) S x 1.M x 2 E-127

IEEE 浮動小数点数 + 0.1 x 2 11 単精度 (4 バイト : 32 ビット) float 参考: 小数の表現方法 指数部 + 0.1 x 2 11 IEEE 浮動小数点数 単精度 (4 バイト : 32 ビット) 倍精度 (8 バイト : 64 ビット) 形式その2を使う (倍精度のバイアスは 1023) 符号部 仮数部 float 符号部 指数部 仮数部 1 bit 8 bit 23 bit double 符号部 指数部 仮数部 1 bit 11 bit 52 bit

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

加算 10進数の加算と同様に、下位の桁からの 桁上がり ( キャリー ) を足していく 注意: オーバーフロー 10進数の加算と同様に、下位の桁からの     桁上がり ( キャリー ) を足していく ________________ 例)4 bit 符号なし整数 1 1 1 1 1   0100 + 0110   1111 + 0001 1 0 1 0 1 0 0 0 0 ________________ 注意: オーバーフロー   演算結果が、表現できる数値の範囲より外側に   超えてしまうことがある

減算 10進数の加算と同様に、下位の桁からの 桁借り ( ボロー ) を引いていく 注意: オーバーフロー 10進数の加算と同様に、下位の桁からの     桁借り ( ボロー ) を引いていく ________________ 例)4 bit 符号なし整数 1 1 1 1 1   1010 - 0110   0000 - 0001 0 1 0 0 ? 1 1 1 1 注意: オーバーフロー   演算結果が、表現できる数値の範囲より外側に   超えてしまうことがある

減算 (方法2) 2の補数表現を使って、加算 2の補数表現では無視する 例) 4 - 1 = 4 + (-1) 1 1 0100 減算 (方法2) 2の補数表現を使って、加算 例) 4 - 1 = 4 + (-1) 1 1   0100 + 1111 … 4 … -1 1 0 0 1 1 … 3 2の補数表現では無視する

2の補数表現の加算 2の補数表現を使って、加算 注意: オーバーフロー 演算結果が、表現できる数値の範囲より外側に 超えてしまうことがある 例) 4 + 4 1   0100 + 0100 … 4 … +4 1 0 0 0 …  8? 正+正=負 負+負=正 注意: オーバーフロー   演算結果が、表現できる数値の範囲より外側に   超えてしまうことがある

シフト演算 論理シフト あふれた値を捨てる / 空き地に 0 を入れる 符号なしの数の、 2倍(左シフト)や 1/2倍(右シフト)に対応 シフト … ビット列を 左 or 右に 移動させる 論理シフト あふれた値を捨てる / 空き地に 0 を入れる 符号なしの数の、   2倍(左シフト)や 1/2倍(右シフト)に対応 例) 左シフト 右シフト 0 1 0 1 … 5 1 1 0 1 … 13 1 0 x 0 1 x ________________ … 10 … 6

シフト演算 算術シフト 符号ビットを保持する 2の補数表現の、 2倍(左シフト)や 1/2倍(右シフト)に対応 例) 左シフト 0 0 0   2倍(左シフト)や 1/2倍(右シフト)に対応 例) 左シフト 0 0 0 1 … 1 1 0 x … -6 … -3 x 0 0 1 0 … 2

シフト演算 算術シフト 符号ビットを保持する 2の補数表現で、 2倍(左シフト)や 1/2倍(右シフト)に対応 例) 右シフト 0 1   2倍(左シフト)や 1/2倍(右シフト)に対応 例) 右シフト 0 1 … 1 … 2 x 1 0 … -3 … -6 x

乗除算 シフトと加減算を組み合わせて実現する 0101 … 5 1101 … 13 … 1101 1000011 … 67 x 0101   1111   1101     10 0101 … 5 … 2 … 1101 1000011 … 67   1101 x 0101 … 13 … 5    1101   0000  1101 0000 1000001 … 65

オーバーフロー アンダーフロー 全学向け (情報向けは、「参考」→「用語」) + 0.1 x 2 11 1 1 1 1 参考: 誤差 参考: 誤差   1111 + 0001 全学向け (情報向けは、「参考」→「用語」) ________________ オーバーフロー 演算結果が、表現できる数値の範囲より 外側に超えること アンダーフロー 浮動小数点演算では、オーバーフローの他に    アンダーフローも起こりえる 演算結果が、表現できる数値の範囲より       細かな数になること 1 0 0 0 0 ________________ 指数部 + 0.1 x 2 11 数値範囲 符号部 仮数部 数直線 0 オーバーフロー アンダーフロー オーバーフロー

情報落ち 桁落ち 全学向け (情報向けは、「参考」→「用語」) 参考: 誤差 ________________ 浮動小数点演算において、 参考: 誤差 全学向け (情報向けは、「参考」→「用語」) ________________ 情報落ち 浮動小数点演算において、 絶対値の大きな数 と 絶対値の小さな数 の 加減算で、絶対値の小さな数の有効桁数の一部または全部が 演算結果に反映されないことで生じる 例) 0.10100(2) x 24 – 0.10001(2) x 2-8 桁落ち 値がほぼ等しい数同士の加減算で、 有効桁数が大幅に減ってしまう 例) 0.10000011 x 24 - 0.10000010 x 24 = 0.10000000 x 2-3 ________________ 意味があるのはこの桁のみ

打切り誤差 丸め誤差 全学向け (情報向けは、「参考」→「用語」) 参考: 誤差 ________________ 参考: 誤差 全学向け (情報向けは、「参考」→「用語」) ________________ 打切り誤差 演算を途中で打ち切ったことで発生する誤差 例) sin x を x – x3/3 ! で計算 (本当は、 x – x3/3 ! + x5/5 ! – x7/7 ! + ・・・ と続く) 丸め誤差 最下位桁より小さい部分について、 丸め(四捨五入や切り上げ、切捨て)を 行うことによって生じる誤差 例) 10/3 = 3.333… → 3.3 ________________

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

ASC I I コード ANS I (American National Standards Institute) で   制定された7ビットのコード 英数字、記号、   制御コードからなる 例) A の文字コード 1 0 0 0 0 0 1

より多くの文字を取り扱うために ... J I S コード ISO-2022 を符号化方式とした 7ビット 1~2バイトのコード 全学向け (情報向けは、2ページに伸ばす) J I S コード ISO-2022 を符号化方式とした     7ビット 1~2バイトのコード 電子メールのやりとりには、ISO-2022-JP の     符号化方式を用いるのが主流 シフト J I S EUC (EUC-JP) Unicode 世界中の言語で使う文字を     1つのコード体系に納め(ようとしてい)るコード

「情報向け」 と 「全学向け」 で 微調整が入っているものを、以下に置く

オーバーフロー アンダーフロー 情報向け (全学向けは、「参考」→「用語」) 用語: 誤差 ________________ 用語: 誤差 情報向け (全学向けは、「参考」→「用語」) ________________ オーバーフロー 演算結果が、表現できる数値の範囲より 外側に超えること アンダーフロー 浮動小数点演算では、オーバーフローの他に    アンダーフローも起こりえる 演算結果が、表現できる数値の範囲より       細かな数になること ________________ 数値範囲 数直線 0 オーバーフロー アンダーフロー オーバーフロー

情報落ち 桁落ち 情報向け (全学向けは、「参考」→「用語」) 用語: 誤差 ________________ 浮動小数点演算において、 用語: 誤差 情報向け (全学向けは、「参考」→「用語」) ________________ 情報落ち 浮動小数点演算において、 絶対値の大きな数 と 絶対値の小さな数 の 加減算で、絶対値の小さな数の有効桁数の一部または全部が 演算結果に反映されないことで生じる 例) 0.10100(2) x 24 – 0.10001(2) x 2-8 桁落ち 値がほぼ等しい数同士の加減算で、 有効桁数が大幅に減ってしまう 例) 0.10000011 x 24 - 0.10000010 x 24 = 0.10000000 x 2-3 ________________ 意味があるのはこの桁のみ

打切り誤差 丸め誤差 情報向け (全学向けは、「参考」→「用語」) 用語: 誤差 ________________ 用語: 誤差 情報向け (全学向けは、「参考」→「用語」) ________________ 打切り誤差 演算を途中で打ち切ったことで発生する誤差 例) sin x を x – x3/3 ! で計算 (本当は、 x – x3/3 ! + x5/5 ! – x7/7 ! + ・・・ と続く) 丸め誤差 最下位桁より小さい部分について、 丸め(四捨五入や切り上げ、切捨て)を 行うことによって生じる誤差 例) 10/3 = 3.333… → 3.3 ________________

より多くの文字を取り扱うために ... J I S コード シフト J I S 情報向け (全学向けは、1ページに圧縮) ________________ J I S コード ISO-2022 を符号化方式とした 7ビット 1~2バイトのコード 電子メールのやりとりには、ISO-2022-JP の 符号化方式を用いるのが主流 シフト J I S J I S コードと同じ文字集合 (8ビット 1~2バイト) 以前の Windows や MacOS では、 内部処理用のコードとして主に利用された (現在でも、ユーザはファイル保存時に使える) ________________

より多くの文字を取り扱うために ... EUC (EUC-JP) : 拡張 Unix コード Unicode 情報向け (全学向けは、1ページに圧縮) ________________ EUC (EUC-JP) : 拡張 Unix コード J I S コードと同じ文字集合 (8ビット 1~2バイト) 主に Unix で用いられる Unicode 世界中の言語で使う文字を 1つのコード体系に納め(ようとしてい)るコード Window,Mac OS X,Unix 等の最近の OS で 標準的に扱える 符号化方式には、UTF-8 や UTF-16 が用いられる ________________

この文面は、TOKYO TECH OCW の利用 条件を参考にしました この教材のご利用について この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を求めることなく、無償で自由にご利用いただけます。講義、自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著作者に帰属します。この教材、または翻訳や改変等を加えたものを公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施してください。なお、この教材に改変等を加えたものの著作権は、次ページ以降に示す著作者および改変等を加えた方に帰属します。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する場合には、頒布・再頒布の形態を問わず、このページの利用条件に準拠して無償で自由に利用できるようにしてください。

この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ この powerpoint ファイルの著作者 堀山 貴史 2007-2010 horiyama@al.ics.saitama-u.ac.jp 改変等を加えられた場合は、お名前等を追加してください 図の著作者 各ページとも 堀山 貴史