NÚMEROS FINITOS
Silício ReversooicìliS ©
Assembly para Iniciantes
TEXTOS ACESSÓRIOS
Notice: Undefined variable: subtitulo in /home/numaboa.com.br/public_html/informatica/oiciliS/assembler/head.php on line 10

(ver 1.1 de 02.08.03)

Fora do mundo dos computadores considera-se que os números são infinitos. Sempre é possível somar mais um ou adicionar alguns zeros que o número não pára de crescer.

Para um computador os números são essencialmente diferentes porque o tamanho dos blocos de dados utilizados É FINITO. Por exemplo, um byte não consegue guardar um número maior do que 255. Se, numa instrução de byte, for adicionado 1 a 255, o número se torna zero. Na prática, ocorrendo esta situação, a instrução faz com que a flag de carry (ou flag de transposição) seja setada para 1 para mostrar que o novo número é grande demais para o tamanho de dados que foi utilizado. Fica mais fácil entender quando se observa os bits:

Flag de Carrybináriodecimal
11111111255
+ 1
1000000000

Como o tamanho dos dados é finito, pode-se considerar os dados como tendo dois valores simultâneos, um positivo e outro negativo.

Números com Sinal

Explico. Quando somamos dois números decimais, frequentemente colocamos um "vai-um" na próxima coluna, assim:

Soma no sistema decimal
11  
95
+ 58
153

A soma de dois números hexadecimais não é muito diferente. Somar 3 com F nos dá 2, com um "vai-um" para a próxima coluna:

Soma decimal Soma hexa

3
+ 15
18
1  
F
+ 3
12

Agora veja o que acontece quando somamos 5 com FF:

Soma decimal Soma hexa Soma binária
1  
5
+ 255
260
11  
05
+ FF
104
1 1111 111   
0000 0101
+ 1111 1111
1 0000 0100

Os "carries" (vai-uns) sucessivos se movem para as posições à esquerda. Se ignorarmos o último 1, porque "estourou" o tamanho do byte, obtemos a resposta 4. Isto significa que FF (255 decimal) se comportou como -1 (5-1=4), portanto, como um número com sinal. Se considerarmos FF como um número sem sinal, o resultado é um erro de overflow porque o byte não consegue guardar o valor hexa 104. O resultado só poderia ser guardado se estivéssemos trabalhando com um bloco de dados word, de 16 bits, ou maior.

Se o número é ou não negativo depende do bit mais significativo do bloco de dados (o bit mais à esquerda), que é conhecido como o "bit de sinal". Se os dados estiverem com o bit de sinal setado, então o número é um número negativo com sinal. Se o bit de sinal estiver zerado, então é um número positivo com sinal. Portanto, é fácil reconhecer um número sinalizado.

Se trabalharmos com words de 16 bits podemos obter valores com números sem sinal que vão de 0 a 65535 (ou de 0000 a FFFF em hexa). Se trabalharmos com números com sinal, metade dos valores serão positivos e a outra metade serão valores negativos. Observe o bit de sinal dos blocos:

hexabinário
Positivos00000000 0000 0000 0000
......
7FFF0111 1111 1111 1111
Negativos80001000 0000 0000 0000
......
FFFF1111 1111 1111 1111

Em todas as formas binárias dos números positivos de 16 bits, o bit de sinal (bit 15) é sempre zero. Para todos os números negativos o bit de sinal é sempre 1. O mesmo raciocínio serve para valores armazenados em blocos de 32 bits, onde o bit de sinal é o 31. Se estiver setado, o valor é negativo; se estiver zerado, o valor é positivo. Se considerarmos apenas os inteiros positivos sem sinal o valor varia de 0 a 4.294.967.295.

Complemento de Dois

Os números negativos acima descritos são conhecidos como Complemento de Dois dos números positivos. Diz-se "de dois" porque a conversão é feita em dois passos. O primeiro deles é achar o complemento. O segundo é adicionar 1 ao complemento encontrado.

Para obter o complemento de um número, tomamos sua forma binária e invertemos todos os bits. Por exemplo:

decimalhexabináriocomplementohexadecimal
240F01111 00000000 11110F15
764C0100 11001011 0011B3179

O segundo passo é adicionar 1 ao resultado do complemento:

decimalhexacomplemento de doishexadecimal
15 + 10F + 11 111  
0000 1111
+ 1
0001 0000
1016
179 + 1B3 + 111  
1011 0011
+ 1
1011 0100
B4180

Fundiu a cabeça? Não se procupe, com o tempo a coisa fica bem mais fácil. Não se deixe intimidar por tão pouco! Você sempre pode voltar e dar uma revisada ;0))))




TEM GÁS PRA MAIS?

A esta altura do campeonato você já sabe: tem mais no texto de nível intermediário Sistemas de Notação.



Localizador

| AAAA | Página Inicial | Mapa do Site | Novidades | Busca | Indique esta página | Mestre da Teia | Voltar |
| Localizador || @ Info NumaBoa > oicìliS > Assembly > Textos > Números Finitos
Créditos: vovó Vicki

webdesign sobMedida by vickiSoft - /informatica/oiciliS/assembler/textos/finitos.php (08.04.03) versão 1.1 de 02.08.03
Licença Creative Commons 1998-2006 Aldeia NumaBoa
Exceto onde especificamente declarado, todo material deste site é disponibilizado de acordo com a Licença Creative Commons.