Я столкнулся с вопросом собеседования, связанным со встроенными системами и C / C ++. Возникает вопрос:
Если мы умножим 2 знаковых (дополнение до 2) 16-битных данных, каков должен быть размер результирующих данных?
Я начал попытки с примера умножения двух знаковых 4-битных данных, Итак, если мы умножим +7
и -7
, мы получим -49
, что требует 7 бит. Но я не мог сформулировать общее соотношение.
Я думаю, мне нужно глубоко понять двоичное умножение, чтобы решить этот вопрос.