Current Location: Home> Latest Articles> Which Number Bases Are Supported by PHP's base_convert Function? Complete Usage Guide

Which Number Bases Are Supported by PHP's base_convert Function? Complete Usage Guide

gitbox 2025-07-09

What Is the base_convert() Function?

The base_convert() function is used to convert numbers between different numeral systems. It allows you to convert a number from one base (like binary, decimal, etc.) to another. The syntax is as follows:

<span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$number</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$frombase</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$tobase</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>  
</span></span>

Parameter Description:

  • $number: The number to be converted, passed as a string.

  • $frombase: The current base of the number, ranging from 2 to 36.

  • $tobase: The base to convert to, also ranging from 2 to 36.

Return Value:

Returns the converted number as a string. If the input is invalid or parameters are incorrect, it returns false.


Supported Base Range

The base_convert() function supports bases from 2 to 36. This means you can convert between the following systems:

  • Binary (Base 2): Consists of 0 and 1, commonly used in computing.

  • Octal (Base 8): Uses digits 0 through 7.

  • Decimal (Base 10): The number system we use daily, consisting of digits 0 through 9.

  • Hexadecimal (Base 16): Includes digits 0 to 9 and letters A to F, widely used in computing, especially for memory addresses.

  • Higher Bases (Base 17 to Base 36): These go beyond commonly used systems but can be useful in specialized applications.

For example, alphabetic characters in higher bases (from hexadecimal onward) are represented by A through Z, where A = 10, B = 11, ..., Z = 35.


Usage Examples

1. Binary to Decimal

Suppose you have a binary number 1011 and want to convert it to decimal:

<span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-string">"1011"</span></span><span>;  
</span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$binary</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">10</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">// Output: 11</span></span><span>  
</span></span>

In this example, the binary number 1011 is converted to decimal 11.

2. Decimal to Hexadecimal

You may need to convert a decimal number to hexadecimal. For example, converting 255 to hexadecimal:

<span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-string">"255"</span></span><span>;  
</span><span><span class="hljs-variable">$hexadecimal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$decimal</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">16</span></span><span>);  
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$hexadecimal</span></span><span>;  </span><span><span class="hljs-comment">// Output: FF</span></span><span>  
</span></span>

Here, decimal 255 is converted to hexadecimal FF.

3. Hexadecimal to Octal

You can convert a hexadecimal number to octal. For example, converting 1F (hex) to octal:

<span><span><span class="hljs-variable">$hex</span></span><span> = </span><span><span class="hljs-string">"1F"</span></span><span>;  
</span><span><span class="hljs-variable">$octal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$hex</span></span><span>, </span><span><span class="hljs-number">16</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);  
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$octal</span></span><span>;  </span><span><span class="hljs-comment">// Output: 37</span></span><span>  
</span></span>

Hexadecimal 1F is converted to octal 37.

4. Decimal to Another Base (e.g., Base 35)

PHP's base_convert() also supports bases beyond hexadecimal. For example, convert decimal 100 to Base 35:

<span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-string">"100"</span></span><span>;  
</span><span><span class="hljs-variable">$base35</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$decimal</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">35</span></span><span>);  
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$base35</span></span><span>;  </span><span><span class="hljs-comment">// Output: 2S</span></span><span>  
</span></span>

In Base 35, the decimal number 100 is represented as 2S.


Things to Note

  1. Range Limitation: The base_convert() function only supports bases between 2 and 36. Values outside this range will cause an error.

  2. Parameter Type: The $number parameter must be a string. Even if you're working with numeric input, it needs to be cast to a string.

  3. Case Insensitivity: PHP treats letters in a case-insensitive manner during base conversion. For example, base_convert("10", 10, 16) will return the same result whether the input uses uppercase or lowercase. The output will be in uppercase, and lowercase inputs are automatically converted.