很简单的一个操作。即使用 1 << 5,结果是32。但是如果这样:
$a=6;
$a--;
1 << $a;
结果打印出来是44542208...不知道怎么回事。
[求助]perl中移位
-
- 帖子: 512
- 注册时间: 2006-02-12 19:29
-
- 帖子: 512
- 注册时间: 2006-02-12 19:29
Re: [求助]perl中移位
已解决。问题出在移位语句上。当移位语句接受的是一个常量的时候,应写等号确认。但对于变量,不能写等号。
即
1 << $num;
16 >>= 2;
如果在向右移时不写等号将不会发生移位操作。
即
1 << $num;
16 >>= 2;
如果在向右移时不写等号将不会发生移位操作。
- ChenFengyuan
- 帖子: 770
- 注册时间: 2008-03-23 0:39
Re: [求助]perl中移位
代码: 全选
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