esta é a razão da Saída estar em Complemento de Dois
são 16 Bits (Word) mas, somente os Bits de 14 a 7 representam o Varor da Temperatura .
O Bit 15 (MSB) é o Sinal
O Bit 7 é a Fração 1/2 °C
Salve ambos os Bits
Se o Sinal for Positivo
O Byte mais Significativo é o Valor Inteiro da Temperatura
Se a fração for = 1 adiciona 0.5 °C
Se Sinal for Negativo :
Da mesma forma que
- Código: Selecionar todos
1 / 1 / N = N
(o Inverso do Inverso de N é o Número N)
O Complemento de Dois do Complemento de Dois é o Valor original.
Então Inverte todos os Bits (O Sinal já foi preservado antes) e Adiciona 1 para obter
o Valor Absoluto da Temperatura.
Se a Fração for = 1 soma 0.5 °C
Exemplo:
+25.5 °C ----> 00011001 10000000
Positivo
Temperatura 11001 = 25
Fração 0.5 °C
Logoa Temperatura é: 25.5 °C
-25 °C ----> 11100111 0000000
E´Negativo e
Fração = Zero
Recuperando: Já que esta em Complemento de dois:
11100111 Inverte
00011000
Adiciona 1
00011001 = l25l
Logo, como o Sinal, préviamente salvo, é Negativo: - 25 °C
---------------------------------
Ao Imprimir ou Mandar para o Display não esquecer do Sinal
.