O tipo inteiro
O tipo inteiro é um número de valor inteiro, ou seja, não fracionário. De um modo geral, trata-se de seqüências de dígitos que representam números inteiros, que podem ser escritos na base 8 (octal), na base 10 (decimal) ou na base 16 (hexadecimal).
Um inteiro decimal é formado pela seqüência de dígitos decimais: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Exemplos válidos para decimais são:
|
0 |
12345 |
1 |
- 89 |
Os números a seguir não são exemplos válidos para decimais:
|
00 |
123.4 |
1,0 |
89-8 |
12 34 |
045 |
OBS. Embora alguns compiladores aceitem declarações do tipo:
int i = 123.4;
todos os números colocados depois do ponto fracionário (nesse caso, o 4) serão desconsiderados.
Um inteiro hexadecimal é formado pela seqüência de dígitos decimais: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 combinados com letras que vão de "A" a "F" (A, B, C, D, E, F ou a, b, c, d, e, f). Como não há regras que impeçam que um hexadecimal possua só valores decimais em sua composição, devemos diferenciá-los dos inteiros decimais inserindo 0x em seus primeiros dígitos. Exemplos válidos para hexadecimais são:
|
0x0 |
0x1234 |
0x1 |
0xA |
0xaBcD |
0x1A9F |
Os números a seguir não são válidos para valores hexadecimais:
|
00x |
0x123.4 |
0x1,0 |
0xAGB |
OxaB |
cD |
FF12 |
Um inteiro octal é formado pela seqüência de dígitos decimais: 0, 1, 2, 3, 4, 5, 6, 7. Devemos diferenciá-los dos inteiros decimais inserindo 0 em seu primeiro dígito. Exemplos válidos para octais são:
|
00 |
012345 |
01 |
- 056 |
Os números a seguir não são exemplos válidos para octais:
|
0 |
0123.4 |
01,0 |
089 |
012 34 |
45 |
Via de regra, os dados inteiros são devolvidos pelo programa no formato decimal. Desta forma, podemos testar uma aplicação, onde colocaremos valores inteiros em vários formatos, porém os mesmos sempre serão exibidos em formato decimal. Você poderá testar valores válidos e valores não válidos para cada base de dados e visualizar os resultados.
Coloque um Label e um Button no Form. No evento OnClick do botão digite:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// declara um valor inteiro decimal cujo nome será i
int i = 43; // podemos substituir o 43 por hexadecimais,
//octais ou outros valores decimais
Label1 -> Caption = i; // coloca i no Caption de Label1
}
Compile e execute a aplicação. O Label imprimirá o número 43. Feche a aplicação e substitua o valor 43 (decimal) no Editor de Códigos por 0x2b (hexadecimal). Rode o programa e dê um clique no botão para ver o resultado. Agora faça a mesma experiência substituindo o 0x2b por 053 (octal). Se você fez tudo direitinho, qualquer dos testes que você executar deverá imprimir o número 43 no Label do Form. Isso porque esses valores são equivalentes. Baseando-se nas explicações introdutórias sobre esses valores inteiros e na tabela abaixo, faça mais alguns testes para compreender melhor o que ocorre a nível equivalência desses dados.
veja uma tabela inicial:
|
decimais |
octais |
hexadecimais |
|
0 |
00 |
0x0 |
|
1 |
01 |
0x1 |
|
2 |
02 |
0x2 |
|
3 |
03 |
0x3 |
|
4 |
04 |
0x4 |
|
5 |
05 |
0x5 |
|
6 |
06 |
0x6 |
|
7 |
07 |
0x7 |
|
8 |
010 |
0x8 |
|
9 |
011 |
0x9 |
|
10 |
012 |
0xA |
|
11 |
013 |
0xB |
|
12 |
014 |
0xC |
|
13 |
015 |
0xD |
|
14 |
016 |
0xE |
|
15 |
017 |
0xF |
|
16 |
020 |
0x10 |
|
17 |
021 |
0x11 |
|
18 |
022 |
0x12 |
|
19 |
023 |
0x13 |
|
20 |
024 |
0x14 |
|
21 |
025 |
0x15 |
|
22 |
026 |
0x16 |
|
23 |
027 |
0x17 |
|
24 |
030 |
0x18 |
|
25 |
031 |
0x19 |
|
26 |
032 |
0x1A |
|
27 |
033 |
0x1B |
|
28 |
034 |
0x1C |
|
29 |
035 |
0x1D |
|
30 |
036 |
0x1E |
|
31 |
037 |
0x 1F |
|
32 |
040 |
0x20 |
Tudo pode estar parecendo muito complicado, mas não se preocupe porque o uso de valores octais ou hexadecimais não é comum. Além do mais, no avançar do curso (ou talvez na seção de tutoriais), nós aprenderemos a construir uma calculadora que nos apresentará como resultado o valor de conversão entre esses dados. Por enquanto, contentemo-nos com a calculadora do Windows que pode realizar esse tipo de cálculos.
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |