如果我们有一个八进制数,例如0o157,Perl 6可以将其转换为十进制:
> 0o157
111
Run Code Online (Sandbox Code Playgroud)
我们不允许以o八进制表示删除它:
> 0157
Potential difficulties:
Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o157'. If you meant to create a string, please add quotation marks.
------> 0157?<EOL>
Run Code Online (Sandbox Code Playgroud)
现在让我们进行从十进制到八进制的反向转换:
> printf "%#o\n", 111
0157
Run Code Online (Sandbox Code Playgroud)
现在的问题是:为什么不现在就在o之后0的八进制表示?
同时,如果我们转换为十六进制,那x将是:
> printf "%#x\n", 111
0x6f
Run Code Online (Sandbox Code Playgroud)
现在的问题是:为什么不现在就在
o之后0的八进制表示?
(s)printf是一个非常普遍使用的函数,并直接移植到Perl 6.它旨在与其他语言的printf函数兼容,而不是与Perl 6输入语法兼容.
Perl 5的printf行为方式相同,因此可能直接复制其行为.