10進2進変換の誤差 九州大学経済学部 10進数を2進数に変換できますか 10進 2進 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 : 2 ) 13 2) 6 2) 3 2) 1 0 0.375 ... ... ... ... 1 0 1 1 10進数 13 は 2進数では 1101 × × × 2 0.75 2 1.5 2 1.0 10進数 0.375 は 2進数では 0.011 コンピュータ内は0と1の世界 数を0と1で表す → 2進数 10進数 13 は2進数 1101 n進数mを m(n) で表す 2進10進変換 1101(2) = 1×23 + 1×22 + 0×21 + 1×20 = 8 + 4 + 0 + 1 = 13(10) 一般に …a2a1a0(2) = … + a2×22 + a1×21 + a0×20(10) 整数の10進2進変換 …a2a1a0(2) = … + a2×22 + a1×21 + a0×20(10) = 2×(… + a2×21 + a1×20) + a0 = 2×(2×(… + a2×20 ) + a1) + a0 =… = 2×(2×(2×(…)+ a2) + a1) + a0 13(10) = 2×6 + 1 = 2×(2×3 + 0) + 1 = 2×(2×(2×1 + 1) + 0) + 1 = 1101(2) 商を2で割った余りを求める 小数の10進2進変換 0.b1b2b3 …(2) = b1×2-1 + b2×2-2 + b3×2-3 + …(10) = 2-1×(b1 + (b2×2-1 + b3×2-2 + …)) = 2-1×(b1 + 2-1×(b2 + (b3×2-1+ …))) =… = 2-1×(b1 + 2-1×(b2 + 2-1×(b3 + …))) 0.375(10) = 2-1×(0 + 0.75) = 2-1×(0 + 2-1×(1 + 0.5)) = 2-1×(0 + 2-1×(1 + 2-1×(1 + 0.0))) = 0.011(2) 小数部を2倍した結果の整数部を求める 10進2進変換による誤差 0.7(10) (1.4, 0.8, 1.6, 1.2, 0.4, 0.8, 1.6,…) = 0.1011001…(2) = 0.1(0110) :括弧内の繰り返し 無限小数 コンピュータ内では有限桁で打ち切り → 誤差
© Copyright 2024 ExpyDoc