2013-10-23 64 views
-4

我想將數字的二進制表示轉換爲PHP中的數字。我目前使用以下在Perl:將perl函數轉換爲php函數(解包,打包)

sub binary2decimal { 
    return unpack("N", pack("B32", substr("0" x 32 . shift, -32))); 
} 

例如,binary2decimal('1101')回報13,並且binary2decimal('1110')返回14

+0

順便說一句,'子binary2decimal'是在Perl中更簡單的實現。 – ikegami

+0

這個轉變是什麼?我不知道perl ... – user2912239

+0

在一個sub中,它是'shift(@_)'的縮寫。 '@ _'包含子的參數。 – ikegami

回答

1

也許你需要這個功能:http://php.net/bindec

但我認爲這實施也做了同樣的:{( 「0b」 時移)十月}

function binary2decimal($param) { 
    return unpack("N", pack("B32",substr(str_repeat("0",32) . $param, -32))); 
} 
+0

不,不是這個功能,看看我的。有拆包裝進去... – user2912239

+0

它也是這樣做的。但我添加了一個更文字轉義也 –

+0

B32是不是在PHP :( – user2912239