Pergunta

É possível adicionar dois números de 8 bits assinados e definir os bits de transporte e transbordamento?

Foi útil?

Solução

De acordo com seus comentários, sua pergunta parece ser "é possível ter um conjunto de transporte e transbordamento para um complemento de dois dois envolvendo número assinado?" Isso é. A implementação típica é levar o exclusivo-ou o carregamento para o último somador com o transporte no final da corrente-portanto, uma adição transbordante de números negativos fará com que o bit de transporte seja definido e o bit de transbordamento a ser definido.

Aqui está um exemplo, adicione -1 a -128:

Carry 10000 0000 
       1000 0000  (-128)
       1111 1111  (-1)
       ---------
       0111 1111 (oops, this is 127!)

O transporte será definido, uma vez que o último add resultou em um transporte -e o transbordamento será definido com base na regra acima (observe também que -128 adicionado a -1 obviamente não é 127)

Outras dicas

Você não tem acesso aos sinalizadores em C, mesmo que você possa fazer com que o compilador gerasse código que os definir, você não tem como usá -los.

Você pode escrever sua própria rotina Adicionar em C que retornará sinalizadores de transporte e transbordamento para operandos de 8 bits assinados. Se você está se referindo ao hardware de transporte e transbordamento dentro do processador, não, isso não pode ser feito portavelmente em C.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top