10-разрядное десятичное в двоичное преобразование не работает
Я сталкиваюсь с проблемой, в то время как я преобразовываю десятичную цифру в двоичную. Когда я преобразую до 9 цифр, он отлично работает в то же время, когда я использую функцию decbin() для 10 цифр, она не работает.
Например, когда я преобразую десятичную в двоичную, используя эту функцию decbin() с любыми входными данными до 9 цифр, я получу правильное решение. Когда я использую десятичную цифру, я получаю такой же вывод (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 ответа
В 32-битной системе максимальное десятичное число: 4294967295
Проверьте это: http://php.net/manual/en/function.decbin.php
Ты используешь $num
за $bin2
также. + Изменить
$bin2 = decbin($num);
в
$bin2 = decbin($num2);