Eu sei, a pergunta parece estranha. Os programadores às vezes pensam demais. Por favor, leia em ...
No IC, use signed
e unsigned
números inteiros muito. Eu gosto do fato de o compilador me avisar se eu fizer coisas como atribuir um número inteiro assinado a uma variável não assinada. Recebo avisos se comparar assinados com números inteiros não assinados e muito mais.
Eu gosto desses avisos. Eles me ajudam a manter meu código correto.
Por que não temos o mesmo luxo para carros alegóricos? Uma raiz quadrada definitivamente nunca retornará um número negativo. Também há outros lugares onde um valor flutuante negativo não tem significado. Candidato perfeito para um carro alegórico não assinado.
Btw - Eu não estou realmente interessado no único bit extra de precisão que eu poderia obter removendo o bit de sinal dos carros alegóricos. Estou super feliz com float
s como estão agora. Eu gostaria de marcar um float como não assinado às vezes e receber o mesmo tipo de aviso que recebo com números inteiros.
Não conheço nenhuma linguagem de programação que suporte números de ponto flutuante não assinados.
Alguma idéia de por que eles não existem?
EDITAR:
Eu sei que o x87 FPU não tem instruções para lidar com carros alegóricos não assinados. Vamos apenas usar as instruções de flutuação assinadas. O uso indevido (por exemplo, abaixo de zero) pode ser considerado um comportamento indefinido da mesma maneira que o excesso de números inteiros assinados é indefinido.