平成27年10月21日 【応用課題2-1】 次のビット列は、ある10進数を8ビット固定小数点表示で表した時の ものです。ただし、小数点の位置は3ビット目と4ビット目の間としてお り、負数は2の補数で表しています。このとき、元の10進数を求めてく ださい。 10100110 補数 符号ビットが1なので負数 1011010 101.1010 ⇒(10進数) 5.625 -5.625 【応用課題2-2】 【基礎課題2-6】と同じ16ビット浮動小数点表示を考えます。この表示 で表した次のビット列は、10進数で表すと何になりますか。 0 0000100 10000010 指数 4 0.10000010×24 = 1000.001 ⇒(10進数) 8.125 【応用課題2-3】 【基礎課題2-7】と同じ16ビット浮動小数点表示を考えます。こ の表示で表した次のビット列は、10進数で表すと何になりますか。 1 10000010 0000010 指数 130-127=3 -1.0000010×23 = -1000.001 ⇒(10進数) -8.125 【応用課題2-4】 2の補数で表された負数10101110の絶対値はどれか。(平成20年度秋) ア 01010000 イ 01010001 ウ 01010010 エ 01010011 【応用課題2-5】 負数を2の補数で表すとき、すべてのビットが1であるnビットの2進 数”1111・・・11”が表す数値又はその数式はどれか。(平成20年度春) ア –(2n-1-1) イ -1 ウ 0 エ 2n-1 【応用課題2-6】 負数を2の補数で表す8ビットの数値がある。この値を10進数で表現す ると-100である。この値を符号なしの数値として解釈すると、10進数で幾 らか。(平成17年度春) ア 28 イ 100 ウ 156 エ 228 100=64+32+4 ⇒(2進数)01100100 補数:10011100 ⇒(10進数)128+16+8+4= 156 【応用課題2-7】 次の24ビットの浮動小数点形式で表現できる最大値を表すビット列を、16進 数として表したものはどれか。ここで、この形式で表現される値は(-1)S×16E64×0.Mである。(平成18年度秋) 0 1 7 8 指数部(E):実際の指数に64を 加算したもの0≦E≦127 仮数部の符号(S):0は非負、1は負 ア 3FFFFF イ 7FFFFF 23 仮数部(M):絶対値表現 0111 1111 1111 1111 1111 ウ BFFFFF エ FFFFFF <学習内容> 1. 論理シフト演算 2. 算術シフト演算 3. 一般の乗算 4. 誤差 <目的> シフト演算を理解し、2進数の乗算と除算を行えるようになる こと。また、コンピュータ内部での演算の際にどのような誤 差が発生するかを理解すること。 2進数の乗算(かけ算) 2進数を2倍することは 例) 0011 × 2 = 0110 2進数を4(22)倍することは ・・・> けたを左に2つずらすこと 例) ・・・> けたを左に1つずらすこと 0011 × 22 = 1100 2進数を2n倍することは けたを左にn個ずらすこと 2進数の除算(割り算) 2進数を0.5(1/2=2-1)倍することは ・・・> 例) 0110 ÷ 2 = けたを右に1つずらすこと 0011 2進数を2-n倍することは けたを右にn個ずらすこと 【基礎課題3-1】~ 【基礎課題3-3】 与えられた数値のけた数を左右にずらす演算 2進数の場合:正の2進整数に2nをかけるあるいは2nで割る演算に対応。 論理左シフト 00 0 0 0 0 1 0 1 0 0 20(10進数) ×4 0 1 0 1 0 0 0 0 80 あふれたビットは捨てる 空いたビットには0を入れる 論理右シフト 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 空いたビットには0を入れる 20(10進数) ÷4 0 00 5 あふれたビットは捨てる 0 0 0 1 1 6 0 ÷4 0 0 0 0 0 1 1 0 1 切り捨てになっている 固定小数点表示を用いると・・・ 0 0 1 1 0 . 0 6.0 ÷4 0 0 0 0 1 . 1 1.5 計算可能 符号付きの2進数の場合、論理シフトするだけでは、乗算、除算になら ない 5 例)0101 × 2 ⇒(左論理シフト) =1010 ⇒(10進数)-6 ? 最上位ビットが符号ビットであることに注意 nビットで表せるのは、-2n-1 ~ 2n-1-1 ビット数を増やせば・・・ 例) 00101 × 2 ⇒(左論理シフト) =01010 ⇒(10進数)10 OK けたあふれしなければ、正数についてはOK -2 例1) 補数をとる ⇒ 0010 (正数) 1110 1100 ①符号は固定 2をかける(左に1つ論理シフト)⇒ 0100 ②左にシフトして0を埋める? 補数をとる ⇒ 1100 ⇒ -4 OK 例2) 1110×2を考える -2 111110 × 4 補数をとる ⇒ 000010 (正数) 111110 111000 4をかける(左に2つ論理シフト)⇒ 001000 符号は固定 左にシフトして0を埋める? 補数をとる ⇒ 111000 ⇒ -8 OK -6 例1) 1010÷2を考える 0110 (正数) 2で割る(右論理シフト)⇒ 0011 補数をとる ⇒ 1101 ⇒ -3 OK 補数をとる ⇒ 1010 1101 ①符号は固定 ②右にシフトして1を埋める? -24 例2) 101000 ÷ 4 補数をとる ⇒ 011000 (正数) 4で割る(右に2つ論理シフト)⇒ 000110 補数をとる ⇒ 111010 ⇒ -6 OK 101000 111010 符号は固定 右にシフトして1を埋める? 【基礎課題3-4】~ 【基礎課題3-5】 符号ビット 算術左シフト はそのまま 1 1 1 0 1 0 0 -24 0 ×4 1 1 1 0 1 0 0 0 0 -96 0 空いたビットには0を入れる あふれたビットは捨てる 算術右シフト 符号ビット はそのまま 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 空いたビットには符号ビッ トと同じビットを入れる -24 0 00 ÷4 - 6 あふれたビットは捨てる 【基礎課題3-6】 2進数×Nを求める場合・・・ Nを2nの和で表現するとシフト演算を用いて計算できる 例1)000101×3 の場合 000101×3 = 000101×(2+1) = 000101×2 + 000101×1 = 001010 + 000101 = 001111 ⇒15(10進数) 例2)000101×6 の場合 000101×6 = 000101×(22+2) = 000101×22 + 000101×2 = 010100 + 001010 = 011110 ⇒30(10進数) 誤差とは コンピュータ内部では、指定されたけた数で数値を表現している。そ のため、真の値との差が生ずる。その差を誤差という。 誤差は、その発生原因に応じて次のように分類されている。 けたあふれ誤差 丸め誤差 けた落ち 情報落ち 打ち切り誤差 けたあふれ誤差 演算結果がコンピュータ内部で表現できる範囲を超えることで発生する誤差。次 の2種類がある <オーバーフロー> 演算結果が数値で表現できる最大値を超えてしまうこと 例) 4ビットの2進整数(正):0110 ×4 ⇒ 11000 4けたを超える <アンダーフロー> 演算結果が数値で表現できる最小値より小さくなってしまうこと 例)4ビット固定小数点表示(正):10.10÷16 ⇒00.001010 最小けたより小さくなる 丸め誤差 指定されたけた数で演算結果を表すため、最下位のけたより小さい部分を 四捨五入、切り捨てあるいは切り上げを行う。そのとき発生する誤差。 例)4ビット固定小数点(正):10.01÷2 ⇒01.001 最下位より下は切り捨て けた落ち 絶対値のほぼ等しい二つの数値の絶対値の差を求めた際に、有効けた数が 減少することで生ずる誤差。 例)有効数字4けたの10進数:0.1234-0.1233 = 0.0001 有効けた数が4けたから1けたへ減少する 情報落ち 絶対値の非常に大きな数値と非常に小さい数値の加算あるいは減算を行っ た際に、小さい方の数値が演算結果に反映されないために生ずる誤差。 例)有効けた数3けたの浮動小数点(10進数) 0.123×103+0.456×10-1 = 0.123 ×103 + ) 0.0000456 ×103 正規化 0.1230456 ×103 ⇒ 0.123×103 0.456×10-1が反映されない 【基礎課題3-6】 打ち切り誤差 特定のけたでデータが打ち切られてしまうことで生じる誤差。 例)1÷3を10進数で求めると 1 ÷ 3 = 0.333333333・・・ 例えば7けたで打ち切ると 1 ÷ 3 = 0.33333333 このとき、真の値との差が生ずる。 無限に続く・・・ 【応用課題3-1】~【応用課題3-4】 明日(10月22日)18:00 10月28日 集合と論理演算 11月 4日 論理回路 11月11日 第1回理解度確認テスト
© Copyright 2025 ExpyDoc