Exemple #1
0
 /**
  * Convert this number into a other number-system.
  *
  * @param NumberSystem $newSystem
  *
  * @return Number
  */
 public function convert(NumberSystem $newSystem)
 {
     $newDigits = [];
     $decimalValue = gmp_init($this->decimalValue());
     do {
         $divisionResult = gmp_div_qr($decimalValue, $newSystem->getBase());
         $remainder = gmp_strval($divisionResult[1]);
         $decimalValue = $divisionResult[0];
         $newDigits[] = $newSystem->getSymbolForPosition($remainder);
     } while (gmp_strval($decimalValue) > 0);
     return $newSystem->buildNumber(array_reverse($newDigits));
 }