- 论坛徽章:
- 0
|
$decimal=17;
$binary = unpack ("B32",pack ("N",$decimal));
$newdecimal = unpack ("N", pack ("B32", $binary));
print $newdecimal;
以上这样是可以的,可是我觉得没有什么意义(对于把二进制又重新转换成10进制的那句,因为既然已经知道了10进制的数)。我想直接把二进制的值转换成10进制,但是运行以下的语句时,返回值又不对,望高手指点迷津,我刚刚开始学习perl:
$decimal1=unpack("N",pack ("B32",0b10 ) );
print $decimal1;
运行结果却是:536870912,expected result is 2.
试了以下几种,也都这样:
$decimal1=unpack("N",pack ("B32",10 ) );
$decimal1=unpack("N",pack ("B32","0b10" ) );
$decimal1=unpack("N",pack ("B32",("0b10" ) ) );
环境:perl 5.6.1, Win2000 |
|