Considere que usamos o número de complemento de dois de 3 bits e vamos realizar a operação de subtração. o minuendo é +3 e o subtraendo é -4. devemos obter o complemento de 2 do subtraendo e adicioná-lo ao minuendo. +3=011 -4=100---> o complemento de dois é novamente 100, agora nós os somamos e obtemos 111, o que está incorreto. porque deveríamos obter 3-(-4)=+7 mas o resultado é negativo! como você analisa o estouro? por que o resultado está errado?
Responder1
Se você estiver usando o bit mais à esquerda para indicar o sinal, não poderá usar o número inteiro de 3 bits. 100
é (positivo, sem sinal) 4 ou é de fato (negativo) 0.
Para que o seu número seja "-4", ele deve realmente ser 1100
e não apenas 100
. Você então trabalha com as informações que possui, sabendo que possui um número de 3 bits e que um desses números é negativo.
O que quero dizer é o valor que você está obtendoé7. 111
é, para números sem sinal de 3 bits, exatamente 7.
Você simplesmente não está levando em consideração o fato de que o primeiro dígito não é o seu dígito de sinal se estiver usando a função de complemento de 3 bits. Você tem que olhar primeiro para o seu número e descartar informações que não sejam relevantes para a operação imediata, ou seja, o dígito do sinal. O sinal informa o que você precisa fazer com ele, mas não é uma parte “real” do valor desse número.
Se você estiver usando um número de 3 bits com sinal, por definição você só poderá realizar adição e subtração de 2 bits.