2010-05-26 65 views
-5

在8位整數編碼10101010中,您有0-255種可能性。二進制文件有多少種可能性?

總共有256種不同的可能性,因爲有8個1和0個。如果我有10位而不是8位,會得到多少種不同的可能性?

我該如何計算在PHP中?

回答

13

我假設你在考慮二進制而不是十六進制?二進制是基體2(因此是0或1),其中作爲十六進制是底座16

假設你正在談論二進制:

  • 如果有8位你有2種可能性。
  • 如果你有9位你有2 的可能性。
  • 如果你有10位你有2 的可能性。

等...

因此,您可以使用PHP pow功能:

$possibilities = pow(2, 10); 
+0

你絕對相信我的意思嗎?這給了我1024個位置 – Val 2010-05-26 12:01:55

+0

@Val假設你在談論二進制,然後是的。如果你有10個位(每個位是0或1),你可以存儲0到1023之間的數字(所以總共有1024個不同的可能性) – Yacoby 2010-05-26 12:03:08

+2

是的,換句話說,每當你添加一個二進制位,可以將可能性增加一倍,就像添加一個十進制數字一樣,可以將可能性數量乘以10。 – Martin 2010-05-26 12:06:10

1

這將是2^10(2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2)

在SQL Server

SELECT 2*2*2*2*2*2*2*2*2*2 

SELECT POWER(2,10) 
2

雖然我爲此發送查詢到SQL Server的想法,OP可能會讚賞純粹的PHP實現。

我建議這樣的:

#!/usr/bin/php 
<?php 
function howmanypossibilities($digits) { 
    preg_match_all('{<b>.+= (.+?)</b>}',· 
    file_get_contents('http://www.google.com/search?q=2**'.$digits), $matches); 
    return str_replace('<font size=-2> </font>', ',', "{$matches[1][0]}\n"); 
} 

print howmanypossibilities(10); 
?> 
+0

+1:非常棒! :-) – Vicky 2010-05-26 12:41:36

0

隨着8位,你有範圍[0 - 255]爲無符號數(256個可能的值,包括0)。

對於一般情況,您有2^x可能值的數量,其中x是位數。因此,有10位,你有2^10 = 1024可能的值。

在PHP計算此,簡單地使用pow功能:

pow (number $base , number $exp) 

例如

echo pow(2, 10)將輸出1024.