10位十进制到二进制转换不起作用

时间:2016-02-08 10:52:50

标签: php binary

我将10位十进制转换为二进制时遇到问题。当我最多转换为9位时,当我使用十进制数字的decbin()函数时,它完全同时工作。它不起作用。

例如,当我使用decbin()将十进制转换为二进制时,此函数具有最多9位数的任何输入,那么我将得到正确的结果。当我使用10位十进制时,我得到1111111111111111111111111111111之间的数字相同的输出(2200000000 - 9999999999)作为输入。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>test</title>
</head>
<body>
<?php
$num = $_GET[n];
$bin = decbin($num);    // Decimal to binary
?>
<table>
<tr><td>Number:</td><td><?php echo $num; ?></td></tr>
<tr><td>Binary:</td><td><a href='binary.php?b=<?php echo $bin; ?>'><?php echo $bin; ?></a></td></tr>
</table>
</body>
</html>

当我访问number.php?n=2200000845时,结果会显示1111111111111111111111111111111

任何人都可以解决这个问题..

2 个答案:

答案 0 :(得分:1)

在32位系统上,最大十进制数为:4294967295

检查:http://php.net/manual/en/function.decbin.php

答案 1 :(得分:0)

您还$num使用了$bin2。改变

$bin2 = decbin($num);

$bin2 = decbin($num2);