〜在perl中是什么意思?

米洪

大批

my @ar = qw(one two);
print ~@ar,"\n";
#output 18446744073709551613

标量(结果很有趣)

my $ar = "qw(onetwo)"; 
print ~$ar
#Output Please refer the screen shot.

我的问题是什么~

对于数组,它给出了一些数字。

对于标量,它给出了一些其他字符,我们从终端复制了字符并粘贴到 中gedit,结果是在以相反顺序打印的长空格字符之后。我无法删除最后的字符。如果我试图删除空格,字符将被一个一个删除(从左到右)。我无法理解这里发生了什么。?

恩韦尔霍夫

一元~执行按位求反。首先通过丢弃小数部分将数字转换为整数,然后翻转二进制表示中的每一位。因此,在 64 位系统上,您将获得:

$ perl -e 'printf "%x\n", ~0'
ffffffffffffffff

双重否定可用于以简洁但不可读的方式将非负数转换为整数:

$ perl -le 'print ~~1.8'
1

在标量上下文中计算,数组产生元素的数量,因此对于二元素数组,~@a等效于~2

在对字符串进行操作时,字符串的二进制表示中的每一位都被翻转:

$ perl -le 'print unpack("B*", "A"), "\n", unpack("B*", ~"A")'
01000001
10111110

$ perl -le 'print unpack("H*", "onetwo"), "\n", unpack("H*", ~"onetwo")'
6f6e6574776f
90919a8b8890

6f是十六进制 ASCII 代码o90是取反的十六进制值。由于每个字节的 MSB 被翻转,因此在打印字符串的按位否定时通常会得到垃圾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

<*>在Perl中是什么意思?

来自分类Dev

->在Perl 6中是什么意思?

来自分类Dev

Perl中的双'at'(@@)是什么意思?

来自分类Dev

在Perl中,“ $ @”是什么意思?

来自分类Dev

在Perl中,“ $ @”是什么意思?

来自分类Dev

!~ 在 perl 中是什么意思

来自分类Dev

Perl:。=〜是什么意思

来自分类Dev

在Perl中,“我的(%input)”是什么意思?

来自分类常见问题

Perl中的<<'m'=〜m >>语法是什么意思?

来自分类Dev

在语法内(在Perl 6中)是什么意思?

来自分类Dev

这在Perl 1 .. $#something中是什么意思?

来自分类Dev

如果(@array)在perl中是什么意思?

来自分类Dev

在Perl中$ variable {$ 2} ++是什么意思?

来自分类Dev

Perl中的“ Cwd”和“ qw”是什么意思?

来自分类Dev

在Perl中,“我的(%input)”是什么意思?

来自分类Dev

“ !!”是什么意思 在haskell中是什么意思?

来自分类Dev

这个Perl语法是什么意思?

来自分类Dev

perl哈希是什么意思{} {}

来自分类Dev

perl -I是什么意思

来自分类Dev

“#!-*-perl-*-”是什么意思?

来自分类Dev

//''是什么?在Perl中连接在字符串末尾时是什么意思?

来自分类Dev

什么是“?” 在Erlang中是什么意思?

来自分类Dev

什么 /; 在 Mathematica 中是什么意思?

来自分类Dev

PHP中“ | =”是什么意思?

来自分类Dev

`:`和`?`在{{??}`中是什么意思

来自分类Dev

<?..?>在XML中是什么意思?

来自分类Dev

“ \”在ng样式中是什么意思?

来自分类Dev

//在<a>标记中是什么意思

来自分类Dev

%=在Java中是什么意思?