bindec is a PHP function used to convert binary numbers into decimal numbers. It takes a binary number (passed as a string) and returns the corresponding decimal integer.
<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><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><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decimal</span></span><span>; </span><span><span class="hljs-comment">// Outputs 13</span></span><span>
</span></span>
In this example, we convert the binary number 1101 to the decimal number 13.
Conversely, decbin is a function that converts decimal numbers into binary. It takes a decimal number and returns the corresponding binary string.
<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><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><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$binary</span></span><span>; </span><span><span class="hljs-comment">// Outputs 1101</span></span><span>
</span></span>
In this example, we convert the decimal number 13 to the binary number 1101.
bindec and decbin can be used together to freely convert between binary and decimal. For instance, we can first use decbin to convert a decimal number to binary, then use bindec to convert the binary back to decimal.
<span><span><span class="hljs-comment">// Decimal to Binary</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><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><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Decimal <span class="hljs-subst">$decimal</span> converted to binary is: </span><span><span class="hljs-subst">$binary</span></span>\n";</span>
<p></span>// Binary to Decimal<br>
$binary = "11011";<br>
</span>$decimal_back = bindec($binary);<br>
</span>echo "Binary $binary converted to decimal is: $decimal_back\n";</span>
Output:
<span><span>Decimal 27 converted to binary is: 11011
Binary 11011 converted to decimal is: 27
</span></span>
This example shows that using decbin converts 27 to 11011, and then bindec converts 11011 back to 27, enabling seamless conversion between decimal and binary.
bindec and decbin only support standard binary and decimal formats. If an invalid binary string is passed (e.g., containing characters other than 0 or 1), bindec will return 0.
decbin has a special handling for negative numbers. It returns a binary string with a sign bit.
<span><span><span class="hljs-variable">$negative_decimal</span></span><span> = -</span><span><span class="hljs-number">10</span></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><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Decimal <span class="hljs-subst">$negative_decimal</span> converted to binary is: </span><span><span class="hljs-subst">$binary</span></span>\n";</span></span>
Output:
<span><span>Decimal -10 converted to binary is: -1010
</span></span>
This shows that decbin automatically adds a negative sign for negative numbers.
bindec and decbin are two very practical PHP functions for converting between binary and decimal. Using them together allows convenient numeric conversions in programming, especially when dealing with binary data or performing low-level operations. Mastering these functions makes working with PHP much more efficient and flexible.