
猜数
|
39
在基数(基数用十进制表示)前加一个冒号,然后把数字放在尖括号里:
:7<254>
:19<IG88>
:26<HAL9000>
:36<THX1138>
练习
2.5
在
REPL
中尝试这些不常见的基数例子。相应的十进制数是什么?
格式化数字
字面数都是对象。可以在对象上调用方法。
.base
方法允许你指定想要表示哪种进制:
put 0x89.base: 10; # 137
还可以选择其他进制,最多可以到三十六进制:
put 0x89.base: 2; # 10001001
put 0x89.base: 8; # 211
put 0x89.base: 16; # 89
练习
2.6
写一个程序,接受一个十进制数作为唯一的命令行参数。输出它的二进制、八
进制、十进制和十六进制值。如果在命令行上提供一个十六进制数会发生什么?
如果用东阿拉伯数字指定十进制数呢?
在前面的练习中,不能指定一个十六进制数作为实参。这是因为,实际上你并不是
指定一个数作为参数,它是由数字字符组成的文本。如果你想使用十六进制数,必
须告诉程序如何转换这个数,为此可以使用
.parse-base
。你要告诉它你想使用哪一
个进制,它会完成其余的工作:
my $number = $thingy.parse-base: 16;