Scheme中是否有内置的二进制到十进制转换功能?
我发现了number->string可以将二进制转换为十进制形式的内置转换。
但是,相反的string->number情况不会像我所想的那样将小数转换为二进制字符串。
是否有内置函数或我们必须对其进行定义?
该string->number函数接受一个可选radix参数:
(string->number "1001" 2)
==> 9
Run Code Online (Sandbox Code Playgroud)
二进制和十进制表示数字;数字本身不是二进制或十进制。
number->string从数字(例如十二)转换为字符串(例如“ 12”),默认情况下输出数字的以10为底的表示形式。
(它不会从二进制转换为十进制-它的名称描述了它的作用。)
string->number从字符串(例如“ 12”)转换为数字(例如十二),默认情况下将字符串解释为数字的以10为底的表示形式。
(此函数的名称也描述了它的作用。)
您可以将两个参数传递给两个函数以使用不同的基本表示形式(2、8、10或16)。
要使用数字的二进制表示形式获取字符串n,请使用(number->string n 2)。
要从s具有二进制表示形式的字符串中获取数字,请使用(string->number s 2)。
例子:
> (number->string 120)
"120"
> (string->number "120")
120
> (number->string 120 2)
"1111000"
> (string->number "1111000" 2)
120
> (number->string 120 16)
"78"
> (string->number "78" 16)
120
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |