する技術士試験の問題からは必要最小限の引用にとどめる。(問題)が記されている部分はその引用である。2進数は位が一つ上がるごとに数値の大きさが倍になる。逆に位が一つ下がるごとに数値の大きさは1/2となる。2進数は1と1で表記され、10進数との関係は次表のようになる。0.125たとえば、2進数で1010は10進数では8+2=10、2進数で0.101は10進数では0.5+0.125=0.625となる。N進数では、2進数の2の部分をNとすればよい。計算による10進数とN進数の変換は次のようにする。8進数の111があれば、これを10進数とするには、1118=1×82+1×81+1×80=64+8+1=73逆に、10進数の73を8進数とするためには下図左側の計算をして、余りを下から読めば、8進数では1118となる。10進数の0.7を8進数に変換するには下図右側の計算をして、得られた整数部分の数字を上から読んでいくと、0.5468となる。2進数と10進数の関係を表に示した。今求めた8進数の0.546は10進数では、5×0.125+4×0.015625+6×0.0019531=0.699219≒0.7となる。(解答)上に示した方法で、10進数の0.85を2進数に直すと、その下4桁までは0.1101となる。(ア)を0.5倍するということは、2で割るということなので、(ア)が1桁さがり、0.01101となる。(イ)を10進数に変換するということは、元の10進数で0.85/2であるので、0.425となりそうであるが、そうはならない。2進数の0.01は10進数の0.25、同じく0.001は0.125、これを合計すると2進数の0.0110は10進数の0.375。ところが2進数の0.1101は0.5+0.25+0.0625≒0.81となり、元の10進数数字0.85よりも小さくなっている。2進数計算は0.1101・・・・とまだまだ続くところを、下4桁までの計算で止めたので、切り捨てによる誤差を含んだことになる。�B(解答)10進数の1/10を表す2進数を上の方法に従ってもとめると、0.00011・・・となる。(解答)解答が4つの部分に分かれていることからもわかるように、1バイトは8ビットである。(解答)n進数で成立している計算式「132−54=34」が何進数の計算であるかの確認をする。これが10進数の計算とすると、「78=34」となり、10進数表記ではないことがわかる。n進数のnを種々変化させて等式が成り立つかの確認をすることになる。答えは6進数で、右辺左辺共に10進数の数字に換算して比較すると、左辺は2×62+3×6+2−5×6−4=22、右辺は3×6+4=22、と等しくなる。�C(解答)基本から考える。(000、001、010、100、101、110、111)の8通り2nビット通りである。25=32でアルファベットが収容でき、28=256で0から255まで356個の整数が収容でき、211=2048で1945文字の漢字が収容できる。(解答)10進数の1/7は0.1428571。これを上の方法で2進数に変換すると、0.001001・・・・となる。�D(解答)210/25=32問題一覧表へ戻る。