機能 oct() Perl

は、Perlプログラミング言語を搭機能 oct().

機能 oct() に変換する番号からoctal数システムの類ではありません。 でもこの機能の変換に関する数値は十進数システム からのバイナリおよび進数.

次に例を示します。

▶ Run
#!/usr/bin/perl

use feature qw(say);

say oct('10'); # 8
say oct('0x10'); # 16
say oct('0b10'); # 2

引数

この機能は oct 与えられない引数の機能が動作 デフォルトの変数 $_:

▶ Run
#!/usr/bin/perl

$_ = 123;

print oct(); # 83

その場合の場合変数 $_undef および使用 use warnings;、警告:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $dec = oct();
Use of uninitialized value $_ in oct at script.pl line 6.

標準使用 oct() が通過する単一の引数に使います。

場合、転送機能 oct() 以上では一つの引数ではエラーコード実行を停止いたします。

Too many arguments for oct at script.pl line 3, near "2)"
Execution of script.pl aborted due to compilation errors.

場合に変換する必要がある複数の値を使用でき map:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @oct = (100, 200, 300);

my @dec = map { oct } @oct;

warn Dumper \@dec;

この機能に渡される文字列で始ま 0x0Xの機能 oct() この解釈の文字列が数値として進数で表記を返します この番号は類ではありません。

ただし、文字列で始ま 0b または OB、その ord() を考慮した行番号 バイナリ表記を返しますその小数点表現。

の場合 oct() パス数ある文字と当てはまらない文字とが に含まれる数値の範囲から 07oct() を返しま 0が含まれま use warnings; まで警告:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;
use feature qw(say);

say oct(90210);
Illegal octal digit '9' ignored at script.pl line 7.
0

機能 oct() では動かないかもしれません数値

▶ Run
#!/usr/bin/perl

use strict;
use warnings;
use feature qw(say);

say oct('10.7');
say oct('0X10.F');
say oct('0B10.11');
8
16
2
Illegal hexadecimal digit '.' ignored at script.pl line 8.
Illegal binary digit '.' ignored at script.pl line 9.

戻り値

機能 oct() で返します。

公式文書

ここでは、出力のコマンド perldoc -f oct:

    oct EXPR
    oct     Interprets EXPR as an octal string and returns the corresponding
            value. (If EXPR happens to start off with "0x", interprets it as
            a hex string. If EXPR starts off with "0b", it is interpreted as
            a binary string. Leading whitespace is ignored in all three
            cases.) The following will handle decimal, binary, octal, and
            hex in standard Perl notation:

                $val = oct($val) if $val =~ /^0/;

            If EXPR is omitted, uses $_. To go the other way (produce a
            number in octal), use "sprintf" or "printf":

                my $dec_perms = (stat("filename"))[2] & 07777;
                my $oct_perm_str = sprintf "%o", $perms;

            The "oct" function is commonly used when a string such as 644
            needs to be converted into a file mode, for example. Although
            Perl automatically converts strings into numbers as needed, this
            automatic conversion assumes base 10.

            Leading white space is ignored without warning, as too are any
            trailing non-digits, such as a decimal point ("oct" only handles
            non-negative integers, not negative integers or floating point).

関連する話題

その他の記事