Perl 教程 之 Perl 运算符 5

简介: 位运算

Perl 教程 之 Perl 运算符 5

Perl 运算符

位运算

位运算符作用于位,并逐位执行操作。

设置 $a = 60,$b = 13,现在以二进制格式表示,它们如下所示:

$a = 0011 1100

$b = 0000 1101


$a&$b = 0000 1100

$a|$b = 0011 1101

$a^$b = 0011 0001

~$a = 1100 0011
Perl 支持的位运算符如下表所示:

运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 ($a & $b) 将得到 12,二进制为 0000 1100
| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 ($a | $b) 将得到 61 ,二进制为 0011 1101
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 ($a ^ $b) 将得到 49,二进制为 0011 0001
~ 二进制反码运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0。 (~$a ) 将得到 -61 ,二进制为 1100 0011 ,一个有符号二进制数的反码形式。
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 $a << 2 将得到 240 ,二进制为 1111 0000

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 $a >> 2 将得到 15 ,二进制为 0000 1111
实例

!/usr/bin/perl

use integer;

$a = 60;
$b = 13;

print "\$a = $a , \$b = $b\n";

$c = $a & $b;
print "\$a & \$b = $c\n";

$c = $a | $b;
print "\$a | \$b = $c\n";

$c = $a ^ $b;
print "\$a ^ \$b = $c\n";

$c = ~$a;
print "~\$a = $c\n";

$c = $a << 2;
print "\$a << 2 = $c\n";

$c = $a >> 2;
print "\$a >> 2 = $c\n";

以上程序执行输出结果为:

$a = 60 , $b = 13
$a & $b = 12
$a | $b = 61
$a ^ $b = 49
~$a = -61
$a << 2 = 240
$a >> 2 = 15

目录
相关文章
|
前端开发 JavaScript API
【第14期】一文读懂前端NueJS框架
【第14期】一文读懂前端NueJS框架
676 0
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
494 58
|
机器学习/深度学习 XML 数据可视化
python常用的第三方库有哪些?
python常用的第三方库有哪些?
2479 157
|
消息中间件 监控 Java
开发者如何使用云消息队列 RocketMQ 版
【10月更文挑战第12天】开发者如何使用云消息队列 RocketMQ 版
1702 98
用Python实现QQ/微信消息轰炸
用Python实现QQ/微信消息轰炸
|
算法 Python
利用贝叶斯算法对简单应用实现预测分类
利用贝叶斯算法对简单应用实现预测分类
247 0
|
安全 API 数据安全/隐私保护
详谈微信网页授权access_token与普通access_token区别
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
详谈微信网页授权access_token与普通access_token区别
|
编解码
PS软件2023免费人物磨皮柔肤软件Portraiture插件
经常有一些粉丝,后台给我留言说,我想要一个用于后期人像精修的磨皮插件,有分享的吗? 你用的是哪种磨皮方式呢,能不能分享给我们这些修图的小白呢? 关于这个问题,磨皮的插件比较多,今天就分享小白最喜欢的一个吧! 专业人士使用事半功倍,非专业人士使用简易上手。ps磨皮、美白,祛痘浑然天成,是一款强大的ps磨皮滤镜,被众多照片后期高手使用,给予的评价颇高。Portraiture插件下载如下:http://t.csdn.cn/OLEG5
869 0