Skip to main content

Conversion from binary to octal in php

Php program for Conversion from binary to octal. Here mentioned other language solution.

<?php
//  Php program for
//  Convert Binary number into Octal number
class Convert
{
	// Convert decimal number into octal
	function octal($number)
	{
		$result = 0;
		$multiplier = 1;
		$remainder = 0;
		while ($number != 0)
		{
			$remainder = $number % 8;
			$result = ($remainder * $multiplier) + $result;
			$multiplier *= 10;
			$number = (int)($number / 8);
		}
		return $result;
	}

	function binaryToOctal($num)
	{
		if (strlen($num) == 0)
		{
			// When empty binary number
			return;
		}
		// Some useful variable
		$flag = false;
		$decimalNo = 0;
		$counter = 0;
		$index = strlen($num) - 1;
		// We Assume that given binary number is valid
		// Here - indicates negative binary number
		// First convert binary to decimal
		// Example = 10111 => 23
		while ($index >= 0)
		{
			if ($num[$index] == '1')
			{
				$decimalNo += (1 << $counter);
			}
			else
			if ($num[$index] != '0')
			{
				if ($index == 0 && $num[$index] == '-')
				{
					// When get negative number
					$flag = true;
				}
				else
				{
					// Not a valid binary number
					return;
				}
			}
			$counter += 1;
			$index -= 1;
		}
		// When given number is 
		$output = $this->octal($decimalNo);
		if ($flag == true)
		{
			$output = -$output;
		}
		// Display given number
		echo "Binary : ".$num;
		// Display result
		echo " Octal : ".$output, "\n";
	}
}
$task = new Convert();
// Test Case
$task->binaryToOctal("1111");
$task->binaryToOctal("10111");
$task->binaryToOctal("101011");
$task->binaryToOctal("11011");
$task->binaryToOctal("-1000110");

Output

Binary : 1111 Octal : 17
Binary : 10111 Octal : 27
Binary : 101011 Octal : 53
Binary : 11011 Octal : 33
Binary : -1000110 Octal : -106




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment