Assinado vs Não assinado
Nosso sistema numérico se estende do infinito negativo ao infinito positivo, com zero no meio. No entanto, na programação, existem basicamente dois tipos de números; o assinado e não assinado. A principal diferença entre um número assinado e um não assinado é, bem, a capacidade de usar números negativos. Números não assinados podem ter apenas valores iguais ou superiores a zero. Por outro lado, números assinados são mais naturais, com um intervalo que inclui números negativos a positivos.
A criação de números assinados e não assinados foi motivada pela necessidade de representar valores numéricos com recursos muito limitados. Por exemplo, usando 8 bits, você só tem um total de 256 combinações. Com um número não assinado, isso significa qualquer valor entre 0 e 255. Por outro lado, ter um número assinado significa que você já perde um pouco por representar o sinal. Com 7 bits, você tem um máximo de 128 combinações; portanto, seu intervalo com um número assinado de 8 bits é de -128 a 127. Portanto, se você tiver recursos limitados, como nos primeiros dias da computação, usar números não assinados era o caminho a percorrer..
Ao usar números assinados e não assinados na programação, é mais seguro usar apenas um ou outro, pois o uso simultâneo de ambos pode resultar em problemas. A primeira é quando você compara um número não assinado a um número assinado. Isso normalmente resulta em avisos, mas o compilador pode compilá-lo de qualquer maneira. O segundo e mais grave problema é quando você atribui o conteúdo de um número não assinado a um número assinado. Se o valor do número não assinado for maior que o valor máximo do número assinado, isso resultaria em um erro.
À medida que a tecnologia se desenvolveu, os recursos se tornaram mais abundantes e o uso de números não assinados está se tornando cada vez menos necessário. Para ilustrar isso, lembre-se de que um número longo de 32 bits pode ter um valor máximo assinado de 2 milhões ou 4 milhões se não estiver assinado. Quando você se move para 64 bits, a diferença está entre 90 e 180 quintilhões; valores que raramente são usados em programas comuns.
Resumo:
1.Número não assinado inclui apenas números zero e positivo, enquanto números assinados incluem números negativos.
2.Os números assinados têm metade do valor máximo dos números não assinados.
3.Misturar números assinados e não assinados pode resultar em problemas.
4.Usar números assinados ou não assinados tem pouca influência em aplicativos modernos.