16進数から10進数の変換
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
|


shojiHIDAKA #8955() Rating1/1=1.00
16進数を10進数に変換してください。
ただし、入出力は文字列とし、次の変換は最低必ずできなければいけないこととします。
2.0x2C9C1227FC6520B →200904012311450123
あわせて、扱える最大の整数も明らかにしてください。
[ reply ]