加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – 它在perl中如何工作“$_&1”

发布时间:2020-12-15 23:37:40 所属栏目:大数据 来源:网络整理
导读:我是perl初学者,我正在阅读grep函数来过滤列表.我遇到了以下程序. #!/usr/bin/perluse strict;use warnings;# initialize an arraymy @array = qw(3 4 5 6 7 8 9);# first syntax form:my @subArray = grep { $_ 1 } @array; 声明my @subArray = grep {$_ 1}
我是perl初学者,我正在阅读grep函数来过滤列表.我遇到了以下程序.

#!/usr/bin/perl

use strict;
use warnings;

# initialize an array
my @array = qw(3 4 5 6 7 8 9);

# first syntax form:
my @subArray = grep { $_ & 1 } @array;

声明my @subArray = grep {$_& 1} @array;在@array中返回奇数.我不明白表达式($_& 1)的工作原理.我在Google中搜索,但没有找到任何有用的链接.

>这是任何一种特殊的运算符?
> EXPR有其他变种吗?

提前致谢.

解决方法

$_是保存当前测试值的变量&是二进制AND运算符,1是第一个.此表达式通过逻辑AND组合$_和1之间的所有位.因此,如果值为奇数,则返回1,如果值为奇数则返回0.

例如,假设$_是123,那么它的二进制表示将是1111011.十进制数1将是00000001,所以组合所有的位由你得到

123 = 1111011
  1 = 0000001
      - AND -
      0000001 = 1

另一个例子200& 100

200 = 11001000
100 = 01100100
      - AND --
      01000000 = 64

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读