challenge 16進数から10進数の変換

16進数を10進数に変換してください。

ただし、入出力は文字列とし、次の変換は最低必ずできなければいけないこととします。

  1. 0x12437308CCB6 →20080902065334

2.0x2C9C1227FC6520B →200904012311450123

あわせて、扱える最大の整数も明らかにしてください。

Posted feedbacks - BASIC

有理数モードにすると桁数の制限がなくなるが
対応している演算は四則演算とべき乗だけである。
BVAL関数をそのまま使うと最初のサンプルは、うまくいくが
2番目のサンプルでは精度が足りない。
そこで、1桁ごとに分解して集計した。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
OPTION ARITHMETIC RATIONAL

FUNCTION hex2dec$(h$)
   LET n = LEN(h$)
   LET t = 0
   FOR i = 0 TO n - 1
      LET t = t + BVAL(h$(n - i : n - i),16) * 16 ^ i
   NEXT I
   LET hex2dec$ = STR$(t)
END FUNCTION

PRINT hex2dec$("12437308CCB6")      !=>20080902065334
PRINT hex2dec$("2C9C1227FC6520B")   !=>200904012311450123
END

Index

Feed

Other

Link

Pathtraq

loading...