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

为什么简单的XOR不能在Perl中运行?

发布时间:2020-12-16 06:07:09 所属栏目:大数据 来源:网络整理
导读:my $list = "1 3";my @arr = split " ",$list;my $c = $arr[0] ^ $arr[1];print $c,"n"; 以上是一个异常的角色. 应该给出答案为2,因为1 XOR 3是2. 解决方法 ^考虑其操作数的内部存储格式以确定要执行的操作. perl -E"say( 1^3 )"2perl -E"say( '1'^'3' )"?
my $list = "1 3";
my @arr  = split " ",$list;
my $c    = $arr[0] ^ $arr[1];
print $c,"n";

以上是一个异常的角色.

应该给出答案为2,因为1 XOR 3是2.

解决方法

^考虑其操作数的内部存储格式以确定要执行的操作.

>perl -E"say( 1^3 )"
2

>perl -E"say( '1'^'3' )"
?

后者xrs字符串的每个字符.

>perl -E"say( chr( ord('1')^ord('3') ) )"
?

您可以通过添加零强制数字.

>perl -E"@a = split(' ','1 3'); say( (0+$a[0])^(0+$a[1]) )"
2

>perl -E"@a = map 0+$_,split(' ','1 3'); say( $a[0]^$a[1] )"
2

从技术上讲,您只需要将其中一个操作数设为数字.

>perl -E"@a = split(' ','1 3'); say( (0+$a[0])^$a[1] )"
2

>perl -E"@a = split(' ','1 3'); say( $a[0]^(0+$a[1]) )"
2

(编辑:李大同)

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

    推荐文章
      热点阅读