0

この継ぎ目が簡単なのはわかっていますが、この特定の状況について質問があります。PHPを使って10進数を2進数に変換する方法は知っているのですが、ビット列全体を表示したいのですが、意外と方法がわかりません。

変換は次のようにする必要があります。

converting 127(decimal) to binary using PHP = 1111111. the bit sequence is 1-128 for every 
octet(IP Address) so this must output = 01111111 even 128 is not used.
2nd Example:
1(decimal) to binary = 01. Want to display the full 1-128 binary sequence even if
128,64,32,16,8,4,2 is not used it must be like this 00000001 not 01.

これは私のPHPコードです:

<?php

        $octet1 = $_POST["oct1"];
        $octet2 = $_POST["oct2"];
        $octet3 = $_POST["oct3"];
        $octet4 = $_POST["oct4"];
        echo decbin($octet1) ," ", decbin($octet2) ," ", decbin($octet3) ," ", decbin($octet4);

    ?>

これは、次のように短縮されたバイナリのみを表示します。

16 to binary is 10000 or but i want to display this 00010000(Full length)

どうやってやるの?

4

2 に答える 2

5

フォーマット指定子sprintfと一緒に使用するのはどうですか:b

echo sprintf("%08b", 127);
// 01111111
echo sprintf("%08b.%08b.%08b.%08b", 127, 0, 0, 1);
// 01111111.00000000.00000000.00000001
于 2013-01-24T10:33:52.153 に答える
1

あなたはそれを埋める必要があります:

echo str_pad($str, 8, '0', STR_PAD_LEFT);
于 2013-01-24T10:31:13.530 に答える