我试图通过迭代字符串索引将一个十六进制数转换成十进制数,并通过乘以相应的16次幂将值添加到结果中。我想出了 "该怎么做",但我是Scheme的新手,所以我不知道 "该怎么做"。
(define convert-to-dec
(lambda (in base)
(fold-left (lambda (r x)
(+ (* base r)
(char->digit x base)))
0
(string->list in))))
1 ]=> (convert-to-dec "a00" 16)
;Value: 2560
这使用了"... 霍纳法 用于多项式计算。
在方案中,"#x "代表十六进制。
(define (hex-to-decimal n)
(string->number(string-append "#x" n)))
(hex-to-decimal "11F")