Diferença entre assinado e não assinado Diferença entre

Anonim

Assinados vs Unsigned

Nosso sistema de números se estende desde o infinito negativo até o infinito positivo, com zero à direita 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. Os números não assinados só podem ter valores de zero ou maiores. Em contraste, os números assinados são mais naturais com uma faixa que inclui números negativos para positivos.

A criação de números assinados e não assinados foi solicitada pela necessidade de representar valores numéricos com recursos muito limitados. Por exemplo, usando 8 bits, você só possui um total de 256 combinações. Com um número não assinado, significa qualquer valor entre 0 e 255. Em contraste, ter um número assinado significa que você já perde um pouco para representar o sinal. Com 7 bits você tem um máximo de 128 combinações para que seu alcance com um número assinado de 8 bits seja de -128 a 127. Então, se você tiver recursos limitados, como nos primeiros dias da computação, o uso de números não assinados era o caminho a seguir.

Ao usar números assinados e não assinados na programação, é mais seguro usar apenas um ou outro como simultaneamente, usando ambos, pode resultar em problemas. O primeiro é quando você compara um número não assinado com 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 do que o valor máximo do número assinado, isso resultaria em um erro.

À medida que a tecnologia se desenvolveu, os recursos tornaram-se mais abundantes e o uso de números não assinados torna-se cada vez menos necessário. Para ilustrar isso, tenha em mente que um número longo de 32 bits pode ter um valor assinado máximo de 2 milhões ou 4 milhões se não estiver assinado. Quando você se move para 64 bits, a diferença é entre 90 e 180 quintilhões; valores que raramente são usados ​​se estiverem em programas comuns.

Resumo:

1. O número não assinado inclui apenas números positivos e negativos, enquanto os números assinados incluem números negativos.

2. Os números assinados têm metade do valor máximo de números não assinados.

3. A mistura de números assinados e não assinados pode resultar em problemas.

4. O uso de números assinados ou não assinados tem pouco suporte nas aplicações modernas.