Valores numéricos
Atualizado
Isto foi útil?
Atualizado
Isto foi útil?
A linguagem trabalha com os seguintes valores numéricos:
Bytes são valores numéricos que ocupam 8 de memória. Bytes e são um a partir do qual são construídos todos os outros tipos da linguagem.
Seu intervalo de valores vai de 0 a 255.
A Biblioteca padrão possui rotinas para efetuar operações aritméticas comuns em bytes (e nos demais tipos numéricos abaixo), tais como soma, subtração, multiplicação e divisões inteiras.
As words são compostas por 2 bytes e, consequentemente, ocupam 16 bits de espaço em memória.
Words possuem o funcionamento similar ao dos números inteiros, porém seu intervalo de valores vai de -32768 a +32767.
Um "número" consiste em dígitos, que podem estar precedidos de um sinal positivo ou negativo. Exemplos:
0
123
-2147483648
+2147483647
A implementação de um número de 32 bits é a seguinte:
O intervalo de valores do tipo número começa no número -2147483648 chegando até ao número +2147483647.
Uma fração é um número seguido de uma barra e um número sem sinal.
Exemplos:
335/113
25946/9545
-19601/13860
A implementação de uma fração é a seguinte:
Um número misto é composto de um número inteiro e um '+' acompanhado de uma fração. Exemplos:
1+1/2
-2+2/3
3+3/4
Abaixo temos a implementação de números mistos:
Os valores hexadecimais são prefixados com o caractere $
.
Exemplos:
$DEADBEEF
$B0DEFE10
$AD0BE
$0CAF0F0
Um ponteiro é uma estrutura com 4 bytes, funcionando de forma similar a um número, no sentido que é possível efetuar operações aritméticas comuns (soma, subtração, etc).
Existem 2 valores booleanos:
sim
(valor 1) e não
(valor 0).
Eles têm 32 bits, mas apenas o bit mais à direita é usado. Na verdade, é o oitavo bit a partir da esquerda, mas você pode pensar nele como o mais à direita. O compilador interpreta 0 como “não” e 1 como “sim”. Você pode desativar um sinalizador para indicar "não" ou ativar um sinalizador para indicar "sim".
Em certas situações, pode ser necessário criar um tipo cujo valor corresponde a um múltiplo de um tipo base. Por exemplo, sabemos que:
Um milissegundo é um número.
Na linha acima criamos um novo tipo, denominado milissegundo
, este sendo um derivado do tipo número
.
A partir daí, poderíamos criar todos os tipos derivados do tipo milissegundo
, como sendo derivados do mesmo. Exemplo:
Já que definimos um segundo como sendo igual a 1000 milissegundos, cada vez que criarmos uma variável do tipo segundo
, o compilador automaticamente multiplicará o valor desta variávelpor 1000 quando tentarmos atribuíla com o tipo milissegundos
.
Devido às particularidades da arquitetura Windows/Intel x86, os bits em cada um dos bytes da word são armazenados na forma "" (da esquerda para a direita), porém os bytes em si são armazenados de forma inversa (ou seja, na forma "").
Os números são armazenados de trás para frente (de acordo com o formato "") devido à dos processadores x86.
Os endereços de memória são armazenados em ponteiros de 32 bits, de trás para frente (formato ""). Eles têm o mesmo intervalo dos números, porém todos os valores negativos não estão disponíveis para manipulação direta pois são usados pelo Windows. O endereço 0 é inválido e é denominado nulo ou inexistente. Você pode "anular" um ponteiro para torná-lo nulo.