[求助]perl中移位

Python/PHP/Perl 开发与设计
回复
tandkzy
帖子: 512
注册时间: 2006-02-12 19:29
送出感谢: 1 次
接收感谢: 0

[求助]perl中移位

#1

帖子 tandkzy » 2010-02-08 22:56

很简单的一个操作。即使用 1 << 5,结果是32。但是如果这样:
$a=6;
$a--;
1 << $a;
结果打印出来是44542208...不知道怎么回事。 :em06
tandkzy
帖子: 512
注册时间: 2006-02-12 19:29
送出感谢: 1 次
接收感谢: 0

Re: [求助]perl中移位

#2

帖子 tandkzy » 2010-02-08 23:17

已解决。问题出在移位语句上。当移位语句接受的是一个常量的时候,应写等号确认。但对于变量,不能写等号。


1 << $num;
16 >>= 2;
如果在向右移时不写等号将不会发生移位操作。
头像
ChenFengyuan
帖子: 770
注册时间: 2008-03-23 0:39
送出感谢: 0
接收感谢: 4 次

Re: [求助]perl中移位

#3

帖子 ChenFengyuan » 2010-02-09 12:34

代码: 全选

Script started on Tue 09 Feb 2010 12:31:06 PM CST
chenfengyuan@darkstar:~$ perl -wle '$a=6;$a--;print 1 << $a;'
32
chenfengyuan@darkstar:~$ exit
exit

Script done on Tue 09 Feb 2010 12:31:10 PM CST
我这对的阿
回复

回到 “Python/Php/Perl”