2016-02-08 75 views
0

我面臨的問題,而我將10位十進制轉換爲二進制。當我轉換成9位數字時,它完美地工作在同一時間,當我使用10位數字的decbin()函數時它不起作用。10位十進制到二進制轉換不起作用

對於一個例子,當我使用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作爲結果。

請人解決這個問題..

+0

它的工作對我來說!我得到'1001001100101100000001011011101010',順便說它是'$ bin2 = decbin($ num2);'對嗎? – Thamilan

+0

請用我更新的代碼檢查它 –

+0

它再次工作:'編號:二進制:\t 1001010100000010111110001111111111' – Thamilan

回答

1

在32位系統中的最大十進制數爲:4294967295

一下:http://php.net/manual/en/function.decbin.php

+0

MrRP,謝謝了,現在它已被修復..我有共享的Linux主機..我如何查看天氣32位或64位? –

+0

phpinfo可以告訴你。例如:'System \t Linux frontend 3.2.0-4-amd64#1 SMP Debian 3.2.68-1 + deb7u6 x86_64' – MrRP

+0

@Dinesh Kumar使用「uname -a」http://www.howtogeek.com/198615/how -to-檢查-IF-您-Linux的系統是-32位或64位/ – rjdkolb

0

您正在使用$num$bin2也。更改

$bin2 = decbin($num); 

$bin2 = decbin($num2);