IT
มัธยมปลาย
เคลียร์แล้ว

6番の(2)がどうしてもわからないので教えてほしいです💦

6. 次の2進数を16進数に、 16進数を2進数にしなさい (1)(11010.11) IA 2> (2) (12.3) 16 3 C 168421 (IA.C) 16 0,3 -0.25 (HOO-OHT72 0.154 -0.125 (10010.0011) 2 10 0.0625 0.1875 0.5 0.25 0.125 0.0 1 ?やり方わからない

คำตอบ

✨ คำตอบที่ดีที่สุด ✨

今回の16進数の12.3は計算すると、
2進数 0000 0001 0010 . 0011
8進数 0022.14
10進数 18.1875
16進数 12.3

この結果、先に答えは10010.0011になります。
今回、16進数を2進数に直接変換するには、4桁ずつに区切って考えますが、
16進数の0.3は、0.0011となるので、それをくっつくればいいだけになります。

のあにゃ૮ . ̫ . ა ︎

自分で計算(?)したら、このようになって、どうしても10010.0011にならないんです😭
どうして、最初のところが10010になるのでしょうか?

แสดงความคิดเห็น

คำตอบ

おはようございます!返信ありがとうございます。

これは、もともと16進数から2進数に直す問題です。
16進数を10進数に直してから2進数に直しても間違いではありませんが、
16進数は2進数を4条すると16進数になる特別なパターンなのでシフト演算が適用できます。

シフト演算とは、もう画像からお分かりだと思いますが、
1010101101のような1と0だけの文字列を4桁ごとに区切って計算したり、
値を左に1桁動かすだけで、2倍の値になったり、右に動かすだけで1/2倍の値になる性質を利用した演算のことです。

また、16,8,4,2,1で当てはめて計算していいのは、10進数を2進数に直す場合だけで、
16進数を2進数に直す過程で10進数に変換する場合、この方法ではうまくいきません。
というのも、2進数を10進数に変換する場合、うまくいかない例外があるからです。
例えば、10進数の0.2=0000 0000 . 0011 0011 0011 0011 0011 0011...となるからです。

したがって、最初に書きましたシフト演算を適用するのがベストな解法で、
16進数を12.3なら[0001][0002].[0003]と移動させて、[]の中だけで[0001][0010].[0011]として、
これをつなげて、10010.0011とすると解決します。

新しい画像を見ながら、回答できなかったので、間違いがありましたらすみません。
また、わからなかったらどんどん聞いて下さい。

のあにゃ૮ . ̫ . ა ︎

こんばんは。
だいぶ日が空いてしまい申し訳ございません😭
とてもわかりやすい説明ありがとうございます😭
大変感謝しております🥲
お陰様で解決できました‥!
本当にありがとうございました!

แสดงความคิดเห็น
ข้อสงสัยของคุณเคลียร์แล้วหรือยัง?

เมื่อดูคำถามนี้แล้ว
ก็จะเจอคำถามเหล่านี้ด้วย😉