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

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

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

  1. 0x12437308CCB6 →20080902065334

2.0x2C9C1227FC6520B →200904012311450123

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

Posted feedbacks - Common Lisp

標準関数のparse-integerには基数を指定できますので、16進表記から変換することが可能です。
また、標準で#xというリーダーマクロが定義されていますので、これを用いて直接的に表記することも可能です。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
(parse-integer "12437308CCB6" :radix 16)
;=> 20080902065334
    12

(parse-integer "2C9C1227FC6520B" :radix 16)
;=> 200904012311450123
    15

(list #x12437308CCB6 #x2C9C1227FC6520B)
;=> (20080902065334 200904012311450123)

上限について書き忘れました。 Common Lispでは整数の大きさについて制限は設けられていません。 http://www.lispworks.com/documentation/HyperSpec/Body/t_intege.htm


Index

Feed

Other

Link

Pathtraq

loading...