Допустим, у меня есть целое число (32 бит), в котором хранится n-разрядное беззнаковое число (с n < 32). Как я могу преобразовать это эффективно в подписанную интерпретацию с использованием двух дополнений?Преобразование n целого числа из без знака в подпись
короткий пример пояснить, что я имею в виду:
int numUnsigned = 15; // Store a 4-bit value 0b1111
int numSigned = ???; // Convert to 4-bit signed value using two's complement
// Now numSigned should be -1, since 0b111 == -1
Я возиться с битами все утро, но не могу показаться, чтобы получить это право.
Как насчет расширения MSB (4-й) до бита 32? Это должно дать вам подписанное представление 4-го числа бит. –
Немного неясно, откуда вы получаете 'n'. –
@ Калеб Я знаю, что это не дополнение 2. Я просто не понял этот вопрос. –