在Perl 6中转换为八进制和从八进制转换

时间:2018-01-21 21:19:37

标签: perl6

如果我们有一个八进制数,例如0o157,Perl 6可以将其转换为十进制:

> 0o157
111

我们不允许在其八进制表示中删除此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>

现在让我们从十进制to octal进行反向转换:

> printf "%#o\n", 111
0157

问题是:为什么八进制表示中o之后现在没有0

同时,如果我们转换为十六进制,x将在那里:

> printf "%#x\n", 111
0x6f

1 个答案:

答案 0 :(得分:7)

  

问题是:为什么八进制表示中o之后现在没有0

(s)printf是一个非常普遍使用的功能,并直接移植到Perl 6.它意味着与其他语言兼容&#39; printf的功能多于Perl 6输入语法。

Perl 5&#39; printf的行为方式相同,因此可能会直接复制其行为。