16進数から10進数への変換
30分プログラム、その592。16進数から10進数への変換 via Haskellで遊ぶよ - haskell。
16進数を10進数に変換してください。
ただし、入出力は文字列とし、次の変換は最低必ずできなければいけないこととします。1. 0x12437308CCB6 →20080902065334
2. 0x2C9C1227FC6520B →200904012311450123あわせて、扱える最大の整数も明らかにしてください。
使い方
gosh> (hex->int "0xF") 291 gosh> (hex->int "0x11") 17 gosh> (hex->int "0x12437308CCB6") 20080902065334
ソースコード
#! /opt/local/bin/gosh ;; -*- mode:scheme; coding:utf-8 -*- ;; ;; hex2int.scm - ;; ;; Copyright(C) 2009 by mzp ;; Author: MIZUNO Hiroki / mzpppp at gmail dot com ;; http://howdyworld.org (use gauche.collection) (define (hex->int s) (fold (lambda (x y) (+ x (* 16 y))) 0 (cddr (map (cut digit->integer <> 16) s))))