アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング第1級の問題で
16進数の0.7を10進数で表せ
という問題があるのですが、答えが0.4375になるのは何故ですか?

わかりやすく解説して頂けると嬉しいです。

A 回答 (2件)

16進数の「12A」を10進数に変換する場合


1×16^2 + 2×16^1 + 10×16^0 = 256 + 32 + 10 = 298

小数点以下1桁目は16^-1
小数点以下2桁目は16^-2
小数点以下3桁目は16^-3
・・・
を掛けます。

16進数の0.7の場合
0×16^0 + 7×16^-1 = 0 + 0.4375 = 0.4375
「プログラミング第1級の問題で 16進数の」の回答画像2
    • good
    • 1
この回答へのお礼

思い出せました、ありがとうございます!

お礼日時:2019/10/09 16:00

「N 進数」というのは、たとえば abcd.efg という表記の数があれば



 a * N^3 + b * N^2 + c * N^1 + d * N^0 + e * N^(-1) + f * N^(-2) + g * N^(-3)

ということだということが理解できていますか? (N^x とは「N の x 乗」ということです。右肩の小文字が書けないので)

「10進数」なら N=10 だし、「16進数」なら N=16 です。
「10進数」なら、
  a * 1000 + b * 100 + c * 10 + d * 1 + e * (1/10) + f * (1/100) + g * (1/1000)
ということになります。

「16進数の 0.7」なら
  0 * 16^0 + 7 * 16^(-1) = 0 + 7 * (1/16) = 7/16 = 0.4375
になるのは、上の「定義」どおりに考えれば分かりますよね?
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2019/10/09 04:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!