功能 hex() Perl

在Perl编程语言都有一个内置的功能 hex().

功能 hex() 转换成数十六格式小数。

这里有一个例子:

▶ Run
#!/usr/bin/perl

print hex('0xFF');

该程序将显示 255.

参数

如果功能 hex 没有给出参数、功能适用 的默认可变 $_:

▶ Run
#!/usr/bin/perl

$_ = '0x100';

print hex(); # 256

在这种情况下,如果可变 $_undef 和使用 use warnings;,会警告:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

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

标准的使用 hex() 是通过一个单一的论点。

如果传输功能 hex() 多个参数,它将是一个错误和执行代码将被停止。

Too many arguments for hex 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 @hex = ('0xA', '0xB', '0x11');

my @dec = map { hex } @hex;

warn Dumper \@dec;

串可以开始与 0x,但不一定。 情况敏感的价值观都不是 已。

这里有几个例子。 在这个例子中,所有电话的功能 hex()返回 相同价值的数2748.

▶ Run
#!/usr/bin/perl

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

say hex('0xABC');
say hex('0XABC');
say hex('0xabc');
say hex('XABC');
say hex('xABC');
say hex('abc');
say hex('AbC');

一个功能不能工作的分数进制数字。 当你试图转换成这样的 数量的警告:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

print hex('0x10.8');
Illegal hexadecimal digit '.' ignored at script.pl line 6.
16

回值

功能 hex() 总是返回的数量。

官方文件

这里是输出的命令 perldoc -f hex:

    hex EXPR
    hex     Interprets EXPR as a hex string and returns the corresponding
            numeric value. If EXPR is omitted, uses $_.

                print hex '0xAf'; # prints '175'
                print hex 'aF';   # same
                $valid_input =~ /\A(?:0?[xX])?(?:_?[0-9a-fA-F])*\z/

            A hex string consists of hex digits and an optional "0x" or "x"
            prefix. Each hex digit may be preceded by a single underscore,
            which will be ignored. Any other character triggers a warning
            and causes the rest of the string to be ignored (even leading
            whitespace, unlike "oct"). Only integers can be represented, and
            integer overflow triggers a warning.

            To convert strings that might start with any of 0, "0x", or
            "0b", see "oct". To present something as hex, look into
            "printf", "sprintf", and "unpack".

相关的主题

其他文章