来自“精通 Perl/第 16 章/位运算符/一元非,~”:
一元 NOT 运算符(有时称为补码运算符)~,根据体系结构的整数大小返回值的按位否定或 1 的补码
为什么下面的脚本会输出两个不同的值?
#!/usr/local/bin/perl
use warnings;
use 5.012;
use Config;
my $int_size = $Config{intsize} * 8;
my $value = 0b1111_1111;
my $complement = ~ $value;
say length sprintf "%${int_size}b", $value;
say length sprintf "%${int_size}b", $complement;
输出:
32
64