最近、10進数を可逆変換して招待コードを作りたいと思ったのですが、やり方がわかりません。今日IPをやっていたときに、これは変換できるのではないかと思いました。そこで私は次の原理を研究しました:
主に私自身が主催:
$ip = '12.34.56.78'; $ips = explode('.', $ip); $result = 0; $result += $ips[0]<<24; $result += $ips[1]<<16; $result += $ips[2]<<8; $result += $ips[3]; echo bindec(decbin($result)); echo '<br/>'; echo bindec(decbin(ip2long($ip))); echo '<br/>'; $str = ''; $str .= intval($result/intval(pow(2, 24))) .'.'; $str .= intval(($result&0x00FFFFFF)/intval(pow(2, 16))) .'.'; $str .= intval(($result&0x0000FFFF)/intval(pow(2, 8))) .'.'; $str .= intval($result&0x000000FF); echo $str; echo '<br/>'; echo long2ip($result);
203569230 203569230 12.34.56.78 12.34.56.78
これはそれを達成するための 1 つの方法にすぎません。他の方法もあります
私は、10 進数を他の 10 進数値に直接、かつ可逆的に変換できる同様の方法を使用したかったのですが、1000100 など、中間に多くの 0 が含まれる値に遭遇した場合に問題が多すぎることがわかりました。 >