質問: n進数に関する質問です。 画像の問題を解いたのですが自信がありません。もしよろしければ採点していただけないでしょうか。間違っていた場合解説もお願いいたします。 1.1 (198.875)^10 2(207.37)^8 3(1011110.01101000)^2 4(2413.423)^5 5(18D.4C)^26 2. 1(15201)^9 2(A3.4F)^16 3(305.02)^8 4-(110101)^2 5(652)^2 6-(6F78)^16 3. 1(10101101)^2 2(1001101010)^2 3-(65)^10 4(132)^8 5-(44)^16
回答: >採点して・・・・間違っていた場合解説も・・・ 計算していき、間違いがあれば★をつけて解説します。 間違いではないが減点になるかも知れないところは☆で解説。 なお、全部ではなく、特徴的な(ひっかかりそうな?)問題についてだけ回答します。 1. ➀整数部は10進数で計算 3×43+4+2=3×64+6=198 小数部は4進数で計算後に10進数化 4進数で0.32×100=32 4進数32の10進数は3×4+2=14 元の値は14/42=14/16=0.875 198+0.875=198.875 2小数点を基準に3ビット単位で区切ると、 10/000/111.011/100 区切りごとに8進数化すると、207.34 ★小数点以下の区切りが、小数点ではなく、下記のように右端基準だった10/000/111.0/111 316進数を4ビットの2進数にする 見やすいよう、区切りをつけると 0101/1110.0110/1000 区切りをとり、左端と右端の0は、特に指定がないので除く 1011110.01101 ☆右端の0を残すのであれば、左端の0も残すべき。 特にコメントもつけず、右端の0だけ残すのは、間違いとはいえないが、減点されるかも。 4整数部=3×22×52+5×2×5+5+3 =3×4×52+2×52+1×51+3×50 =(2×51+4)×52+1×51+3×50 =2×53+4×52+1×51+3×50 よって、整数部の5進数は2413 小数部×53=0.184×125 =23 =4×5+3 =5進数43 元の値は、これを10進数53つまり5進数1000で割った値なので、 小数部の5進数は43÷1000=43×0.001=0.043 整数部と小数部を合わせた5進数は2413.043 ★整数部は合っているが、小数部が間違い 5進数0.423は、5進数1000をかけると5進数整数423で、 その10進数は4×52+2×5+3=113 5進数0.423が表す10進数は、113/125=0.904 つまり(358.904)10を5進数にしたことになる どんな計算をしましたか? 53ビット単位の2進数にしたあと、小数点を基準に4ビット単位で区切ってから、16進数にする。 区切りに、目印として/を書き、最後は取り除く 3ビット区切りは、110/001/101.010/011 4ビット区切りは、1/1000/1101.0100/1100 16進数にして区切りをとると18D.4C 2.は4だけ回答。 他はチェックしていないが、5と6は、4と同様な間違いをしていそう。 4101100ー110111 =1100ー10111 =ー(1+1111+111ー1100) =-(1+11+111) =ー(100+111) =ー1011 ★「負数を2の補数で表す」という前提条件があるなら、 答えは110101だが、それでもーはつかないから、 ー110101は間違い。 そもそも「負数を2の補数で表す」なら、計算する値の最上位ビットは0のはずであり、最上位ビットが1なら、「8ビット2進数で計算せよ」のような、101100を44、110111を55と正の値に見なせる条件が書かれる。 3.は45だけ回答。 43ビット単位で区切り01/011/001 よつて、8進数は131 ★「8進数132」という答えは、2の補数と混乱している。 そもそも、この4や5の問題がヒッカケ。 2進数は、「元の値が負なら、1の補数や2の補数に変換された値」なので、この2進数を8進や16進にすればいいだけ。 「1の補数に直して・・・」とか「2の補数になおして・・・」という処理は不要。 5は4ビット単位で区切り1011/1011 よって、16進数はBB ★ー44は、1011/1011を反転した0100/0100から出たのだろうが、+1していないから、それだと2の補数ではなく、1の補数の処理。 さらに、「16進数BBが負値だから2の補数になおす」という状況は、どこにもない。 無理に、その状況を作り出そうとするなら、問題文を次のように解釈せねばならないが、とても不自然。 「8ビット(10111011)2は、負値なら2の補数で表現するという条件下で書かれた2進数。この2進数を16進数に直し、かつ、2の補数形式ではなく、マイナス符号で負値を表す表現に直せ」 その場合の答えは、(ー44)16ではなく、(ー45)16