bindec 是 PHP 中用于将二进制数转换为十进制数的函数。它接收一个二进制数(以字符串形式传入)并返回对应的十进制整数。
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">bindec</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$binary_string</span></span><span>)
</span></span>
<span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-string">"1101"</span></span><span>;
</span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bindec</span></span><span>(</span><span><span class="hljs-variable">$binary</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decimal</span></span><span>; </span><span><span class="hljs-comment">// 输出 13</span></span><span>
</span></span>
在这个例子中,我们将二进制数 1101 转换成了十进制的 13。
与 bindec 相对,decbin 是将十进制数转换为二进制数的函数。它接收一个十进制数并返回对应的二进制字符串。
<span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">decbin</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$number</span></span><span>)
</span></span>
<span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-number">13</span></span><span>;
</span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-title function_ invoke__">decbin</span></span><span>(</span><span><span class="hljs-variable">$decimal</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$binary</span></span><span>; </span><span><span class="hljs-comment">// 输出 1101</span></span><span>
</span></span>
在这个例子中,我们将十进制数 13 转换成了二进制的 1101。
bindec 和 decbin 可以配合使用,让我们在二进制和十进制之间自由转换。比如,我们可以先用 decbin 将十进制数转换为二进制,然后用 bindec 将二进制转换回十进制。
<span><span><span class="hljs-comment">// 十进制转二进制</span></span><span>
</span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-number">27</span></span><span>;
</span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-title function_ invoke__">decbin</span></span><span>(</span><span><span class="hljs-variable">$decimal</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"十进制 <span class="hljs-subst">$decimal</span></span></span><span> 转换为二进制是: </span><span><span class="hljs-subst">$binary</span></span><span>\n";
</span><span><span class="hljs-comment">// 二进制转十进制</span></span><span>
</span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-string">"11011"</span></span><span>;
</span><span><span class="hljs-variable">$decimal_back</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bindec</span></span><span>(</span><span><span class="hljs-variable">$binary</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"二进制 <span class="hljs-subst">$binary</span></span></span><span> 转换为十进制是: </span><span><span class="hljs-subst">$decimal_back</span></span><span>\n";
</span></span>
输出:
<span><span>十进制 27 转换为二进制是: 11011
二进制 11011 转换为十进制是: 27
</span></span>
通过这个示例,可以看到我们通过 decbin 将 27 转换为 11011,再通过 bindec 将 11011 转换回了 27,实现了十进制和二进制之间的互转。
bindec 和 decbin 都只支持标准的二进制和十进制格式。如果传入无效的二进制字符串(如包含非0、1的字符),bindec 将返回 0。
decbin 对于负数的处理也有特别之处。它会返回带有符号位的二进制字符串。
<span><span><span class="hljs-variable">$negative_decimal</span></span><span> = -</span><span><span class="hljs-number">10</span></span><span>;
</span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-title function_ invoke__">decbin</span></span><span>(</span><span><span class="hljs-variable">$negative_decimal</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"十进制 <span class="hljs-subst">$negative_decimal</span></span></span><span> 转换为二进制是: </span><span><span class="hljs-subst">$binary</span></span><span>\n";
</span></span>
输出:
<span><span>十进制 -10 转换为二进制是: -1010
</span></span>
这表明 decbin 会自动为负数加上负号。
bindec 和 decbin 是 PHP 中用于二进制与十进制相互转换的两个非常实用的函数。它们的配合使用可以帮助我们在编程中更加方便地进行数值转换,尤其在需要处理二进制数据或进行底层操作时,二进制与十进制的转换会非常有用。掌握这两个函数的使用,可以让你在 PHP 编程时更加得心应手。