Подписано без подписи и наоборот (арифметическое)

Как преобразовать число из неподписанного в подписанное?

подписано: от -32768 до 32767 без знака: от 0 до 65535

Я решаю проблему в JavaScript. Ситуация такова, что у меня есть номер, который идет, например, от 0 до 65535, и я хочу преобразовать его в разумное значение со знаком.

например: 65535 должно стать -1.

Пожалуйста, не используйте операции с битами, а делайте что-то арифметическое.

Я предполагаю, что это не должно зависеть от языка, если предположить, что мы используем достаточно большой тип данных.

Обновление: Реализация в соответствии с ответом ниже:

function convertWordToShort(ival) {
    if (isNaN(ival) === false) {
        if (ival > 32767) {
            ival = ival - 65536;
        }
    }
    return ival;
}
function convertShortToWord(ival) {
    if (isNaN(ival) === false) {
        if (ival < 0) {
            ival = ival + 65536;
        }
    }
    return ival;
}
function convertIntToDWord(ival) {
    if (isNaN(ival) === false) {
        if (ival < 0) {
            ival = ival + 4294967296;
        }
    }
    return ival;
}
function convertDWordToInt(ival) {
    if (isNaN(ival) === false) {
        if (ival > 2147483647) {
            ival = ival - 4294967296;
        }
    }
    return ival;
}

Ответы на вопрос(1)

Ваш ответ на вопрос