Перевод отрицательных чисел в различных системах счисления

Нужно сделать нормальный перевод отрицательных чисел из десятичной системы в другие. base_convert() отрицательные числа вообще не учитывает, поэтому не подходит. Попробовала добавить библиотеку GMP, но он просто добавляет минус для отрицательных чисел, никак его не пересчитывая. Хотя по сути, с двоичными числами он должен их инвертировать и потом добавлять единицу. Пробовала добавлять условие, описанное выше, однако PHP инвертирует числа неправильно - 1111 превращается в 0, и в итоге получается 11, хотя должно 10001. Как решить эту проблему в PHP?

<?php
    if (isset($_POST['number'])) {
        $number = gmp_strval(gmp_init($_POST['number'], $_POST['ons']), $_POST['nns']);
        echo "<p>Старая система счисления: {$_POST['ons']}</p>
              <p>Новая система счисления: {$_POST['nns']}</p>
              <p>Старое число: {$_POST['number']}</p>
              <p>Новое число: $number</p>";
    } ?>
    <form method="POST">
        <input type="text" name="number" placeholder="Введите число">
        <input type="text" name="ons" placeholder="Введите старую систему счисления">
        <input type="text" name="nns" placeholder="Введите новую систему счисления">
        <button type="submit">Отправить</button>
    </form>

Ответы (0 шт):