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);
Другие вопросы по тегам